Írtam már párszor a következő Mac OS X legnagyobb dobásáról, az OpenCL-ről, és valószínűleg a megjelenésig (főleg pedig utána) egy rakás hír jelenik meg még a témában az Appleblogon. Nagyon szimpatikus fejlesztésről van ugyanis szó, ami már önmagában akkorát dobhat a Snow Leopard használhatóságán, hogy más újdonságra szinte nem is lenne szükség. A következő operációs rendszer esetében halmozottan igaz, hogy a karosszéria változtatása nélkül inkább a motorháztető alatt bütykölnek a kaliforniaiak, mit bütykölnek, a kiegyensúlyozott négyhengerest egy biturbó V8-asra cserélik.

Akik még nem olvastak esetleg róla: az OpenCL segítségével lehetővé válik a grafikus magokban rejlő erőtartalékok kihasználása a nem grafikus feladatokhoz. Persze az integrált gpu-k teljesítménye szerény, de a legutóbbi frissítéssel megjelent 9-es sorozatú Nvidiákat már érdemes piszkálni, mert harapnak. A MacBookba pakol 9400-as GeForce számolási teljesítménye például 54 gigaflops, tehát 54 milliárd lebegőpontos művelet másodpercenként, ami megfelel a Mac Prókba pakolt legdurvább Core 2 Quad-ok erejének. És mindezt egy alacsony fogyasztású laptopalkatrész hozza!

De még nagyobb tartalékok vannak a csúcskártyákban: az ATI Radeon HD 4870X2-esen két darab R770-es grafikus mag dolgozik, amik együttesen 2,4 teraflops, tehát 2400 gigaflops számolási teljesítményre képesek, ötvenszer többre tehát, mint napjaink legerősebb processzorai.

És ezt a megzabolázatlan erőt adja át az Apple az OpenCL-lel a programozóknak, hogy végre ne csak az élethű vérfröccsök kiszámításában lehessenek hasznunkra a grafikus gyorsítók.

Azért csodákra nem kell számítani: az új szabvány nem jelenti azt, hogy holnaptól Mac Pro teljesítményt hoznak a MacBookok, meg hogy az erősebb gépekkel 20 perc alatt lerenderelhető lesz a Shrek 5. A grafikus kártyában lévő tartalékok kihasználása melós dolog, és ebben a feladatban csak részben tud segíteni az OpenCL. A cpu-k és a gpu-k működési elve ugyanis jelentősen különbözik, előbbiek általános célú hardverek, amik képesek bármilyen feladatot elvégezni, de komótosan, míg utóbbiak villámgyorsak ugyan, de főleg csak akkor lehet hasznukat venni, ha masszívan párhuzamos melót adunk neki.

Hol találkozunk ilyesmivel? Például tudományos munkák során. Vagy kódfejtésben: egy bonyolultabb titkosítással hónapokig szenved egy átlagos processzor, a grafikus gyorsító viszont pár nap alatt feltör mindent. Ahogy azt kábé egy éve Andrew Humber, az Nvidia szóvivője megfogalmazta:

Amikor a hagyományos processzor könyvet olvas, az első oldalon kezdi, majd folyamatosan halad az ötszázadikig, míg egy grafikus gyorsító százezer darabra tépi a könyvet és egyszerre kezd neki.

Számos informatikai feladatot viszont nem lehet százezer darabra tépni, nem, vagy csak nehezen lehet többszálúsítani (még a négymagos processzorok kihasználása is nehézkesen megy, akkor képzeljünk el egy 256 stream csippel szerelt csúcskártyát), így sok esetben nem lesz tehát majd érzékelhető a gyorsulás. Megfelelő optimalizálás esetén viszont drámaian gyorsulhat néhány részfeladat, és a rendszer egésze is sokkal gördülékenyebben működik majd.

Az ötlet egyébként nem forradalmi, hiszen az OpenCL-nek van nvidiás meg atis előzménye is: előbbit CUDA-nak, utóbbit Streamnek hívják, azonban ezek nem kompatibilisek egymással, ami meg is akadályozta elterjedésüket. Mivel az üzleti életben senki, így az Apple sem jelentheti ki biztosan, hogy jövőre, vagy két év múlva melyik gyártó lesz a partnere, a vállalatok nem kötelezték el magukat egyik szabvány mellett sem, az OpenCL-lel azonban megoldódik a probléma, hiszen azt mindkét nagy gyártó támogatni fogja.

A legjobb hír, hogy nemcsak a Snow Leopard, hanem bármelyik rendszer profitálhat majd az Apple gründolta szabványból, igaz, már hivatalos, hogy a Windows 7-esben például nem lesz benne az OpenCL-támogatás.