A jelenleg is zajló JavaOne 2012 rendezvényen az AMD és az Oracle hivatalosan is bejelentette a Sumatra kódnevű projektet, melyet egy ideje rebesgetett az OpenJDK közösség, de csak a tegnapi napon vált hivatalossá az egész. A Sumatra lényege, hogy a Java programoknak lehetővé tegye az integrált, vagy akár a dedikált grafikus vezérlők általános számítási kapacitásának kihasználását. Ehhez hasonló projektek már működő formában is létezik, így például megemlíthető az AMD által fejlesztett Aparapi, vagy például a Rootbeer. A Sumatra azonban alapvetően a HotSpot csoport által finanszírozott fejlesztés, és a fő cél a mélyebb integráció a HotSpot JVM-be (Java virtuális gép). Ezzel lényegében egyszerűbben lehet majd olyan Java alkalmazásokat írni, amelyek kihasználják a grafikus processzor erejét.
Hirdetés
A Sumatra projekt a GPU-kat OpenCL platformon keresztül éri el, de nem úgy, ahogy azt az eddigi megoldások jellemzően tették. A JOCL, a JOpenCL és a JCUDA használata egy nagyon barátságtalan környezet volt a Java programozók számára, így hatalmas sikert nem arattak, de mégis hasznos volt a megszületésük. Az Aparapi már valamivel kedvezőbb megoldást kínált a problémára, mivel a párhuzamosan futtatható részek kijelölése után a Java bytecode-ból generált OpenCL rutinokat, amelyeket az OpenCL-t támogató GPU-k vagy IGP-k végrehajtottak. A programozók számára az Aparapi egy élhetőbb megközelítés, hiszen kevesebb befektetett munkát igényel, és az eredmény is kifejezetten impozáns lehet. Erre jó példa a Pacific Northwest nemzetközi laboratórium, mely hatvanszoros gyorsulást ért el a grafikus vezérlők bevetésével és az Aparapi használatával.
Az Aparapi tehát valós alternatíva lehet, de van hova fejlődni, így az AMD és az Oracle megpróbálja leküzdeni a további gondokat. A Sumatra projekt éppen ezért más oldalról közelíti meg a GPGPU-s gyorsítást, és a grafikus vezérlő számára a szükséges OpenCL kódot maga a JVM generálja és fordítja a forráskódban elhelyezett utasítások szerint, amelyek kijelölik a párhuzamosan futtatható részeket. A hosszabb távú cél innen lényegében egyértelmű, hiszen ha ez megvalósul, akkor már csak egy lépés az, hogy a HSA konkrétan része lenne a Java virtuális gépnek. A HotSpot JVM egyébként úgy lesz kialakítva, hogy ha esetleg a gyorsításhoz szükséges grafikus vezérlő nincs jelen a rendszerben, akkor a kódot a központi processzor fogja feldolgozni.
Arról egyelőre nincs pontos adat, hogy a Sumatra projekt mikor ér révbe. Az egyelőre biztosnak látszik, hogy a Java 8 várható bemutatkozásáig már kevés az idő, így vagy kiegészítésként, vagy a Java 9-ben érkezik az új rendszer.