Friday, June 13, 2008

Parallelism

Efter att Megahertzkriget tog slut med Intels 4GHz Pentium 4-processor (de enda som inte förstod det är IBM) har processorindustrin fokuserat på att addera flera "cores" på samma CPU, egentligen alltså sätta fler CPU:er på samma silikonbit.

Problemet med det är att programmeringsspråk och verktyg inte följt med utvecklingen speciellt bra. De flesta applikationer delar nuförtiden upp sig i trådar, lättviktsprocesser inom samma process och operativsystemen av idag försöker distribuera trådar över så många CPUer som bara möjligt. Problemet här är att det inte är speciellt effektivt i verkligheten.

Man ser inte en hundraprocentig hastighetsökning bara för att man har en extra kärna (core) i processorn. Resultatet brukar alltsom oftast istället bli att man har en kärna som jobbar som tusan medan den andra mest sitter och rullar tummarna och väntar på något att göra.

Microsoft och Intel jobbar intensivt med program för att utbilda programmerare och skapa kompilatorer som ska öka parallelismen och därmed exekveringshastigheten och nu hoppar Apple på tåget och slår sig som vanligt hårt för bröstet.

OpenCL, Open Computing Language, ska hjälpa utvecklare att få ut processorprestandan från de kraftfulla grafikkorten i våra maskiner och applicera den på våra vanliga applikationer och en teknologi de kallar "Grand Central" ska öka parallelismen i operativsystemet.

Medan OpenCL åtminstone har en teknisk förklaring bakom sig är beskrivningen av Grand Central betydligt mer fluffig och diffus.

Jag hoppas att Mac OS X 10.6 (kodnamn Snow Leopard) som ska leverera de här teknologierna lever upp till förväntningarna.

No comments: