Párhuzamosítás egyszerűen a MARE API-n keresztül

A Qualcomm bejelentette a MARE API-t, amely egy komplett futtatási környezet a sokmagos processzorok egyszerűbb kihasználására kihegyezve. A rendszer programozói könyvtárakat is tartalmaz és alapvető célja a többszálú optimalizálás egyszerűsítése annak érdekében, hogy a fejlesztők könnyebben kihasználhassák a mai rendszerchipek előnyeit.

A Qualcomm szerint a párhuzamos programfuttatás alapvető gondja maga a programozási modell, és a ma elterjedt koncepcióknál sokkal praktikusabb opciók is léteznek. A MARE, vagyis a Multicore Asynchronous Runtime Environment elsősorban az egyszerűségre tör. Használatával a kódban kijelölhetők különböző szekciók, amelyek megfelelő strukturálás mellett párhuzamosan futtathatók lesznek.

A legegyszerűbb ezt úgy elképzelni, hogy a MARE segítségével a kódban kijelölhetők egymástól független feladatok. Ez az első lépés, de ügyelni kell arra, hogy ezek a feladatok egymástól függhetnek, amit szintén kezelni kell a kódban. Lényegében meg kell mondani a feladatok sorrendjén a függőség tudatában. A Qualcomm szerint ez a modell jóval egyszerűbb a programozók számára, mint direkten vezérelni a szálakat, és a hatékonysága igen jónak mondható. A vállalat mérései alapján a MARE használatával nagyjából 20%-kal csökkenthető az adott lapka fogyasztása, miközben a futtatott program sebessége állandó. Persze ez lefordítható úgy is, hogy a programfuttatás gyorsul, egy szálú kódhoz viszonyítva akár a kétszeresére.

A Qualcomm kiemelte, hogy a MARE még kezdeti stádiumban van, de már jól használható a homogén többmagos processzorok jelenleginél hatékonyabb programozására és a Big.Little koncepcióra is fel van készítve. Utóbbi különösen érdekes, mivel a MARE specifikusan utasítható úgy, hogy bizonyos feladatokat a kisebb vagy nagyobb teljesítményű magokon futtasson. Ez például a jelenlegi Big.Little ütemezéssel nagyon nehéz elérni, így a program működése főleg a globális ütemezőre van bízva. Később a MARE kiegészülhet a gyorsítók felismerésével, de ez még aktív fejlesztés alatt áll. Mindenesetre a Qualcomm kutatja a HSA platformmal való társítás lehetőségét.

A vállalat a MARE API-t egyelőre a fejlesztőpartnereinek kínálja fel letöltésre az alábbi oldalon keresztül. Fontos, hogy maga a rendszer nem kötődik a Qualcomm hardvereihez, így a legtöbb androidos terméken futtatható lesz a MARE segítségével írt kód, legalábbis az ARM architektúrákra ez teljesen tesztelve van. A Qualcomm később szeretné megnyitni a fejlesztését, de előbb még eszközölnének rajta pár alapvető fejlesztést.

A vállalat még nem döntött arról, hogy miképp lenne elérhető a MARE specifikációja és forráskódja a többi gyártó számára, de jelenleg jó esély van rá, hogy a HSA alapítvány résztvevőivel közösködne a cég, hiszen körülményes lenne még egy alapítványt létrehozni a MARE köré, amikor a HSA alapítványba is bárki beléphet.

Előzmények

Hirdetés