Vanwege de vraag naar virtualisatie en een lage prestatie-per-watt zijn alle processorfabrikanten op dit moment druk doende hun processoren van meerdere kernen en meerdere threads te voorzien. Op termijn zullen ze echter toch weer terug moeten grijpen op het beproefde recept van de steeds hogere kloksnelheden.
Waar de prestatiestrijd op de pc zich op dit moment afspeelt rond de quadcore processoren van Intel en AMD, is men buiten de X86-wereld veel verder met multicores. Daar zien we processoren met tientallen threads nu al in commerciële systemen. Bovendien zijn meerdere fabrikanten in hun laboratoria met processoren met vijftig tot honderd kernen en threads in de weer. De ambities die zij daarbij hebben uitgesproken reiken echter tot in de vele honderden.
Zo kon Intel op de onlangs gehouden International Solid-State Circuits Conference (ISSCC) een werkende versie van zijn Teraflop Research Chip – codenaam Polaris – laten zien. Deze bevat tachtig kernen, elk met twee floating point units. Daarmee haalt de Teraflop maar liefst 1000 miljoen berekeningen per seconde. Bovendien is het verbruik op 3 GHz maar 62 watt.
128 threads
Ook Sun heeft met zijn laatste UltraSparc-processoren een strategie naar multicores ingezet. Later dit jaar komt het bedrijf met de T2 (codenaam Niagara II). Deze bevat acht kernen en kan 64 threads tegelijkertijd uitvoeren. Dat is twee keer zo veel als de huidige T1 (Niagara I) die op acht kernen 32 threads draait. Voor volgend jaar staat de Victoria Falls in de planning. Die verdubbelt het aantal kernen nog eens: zestien stuks met in totaal 128 threads.
Daarnaast werkt Sun aan de Rock. Die moet eind volgend jaar uitkomen en uitgroeien tot een echte multithreading lijn. De eerste processor bevat waarschijnlijk vier kernen, die elk vier engines hebben, waarop dan weer twee threads draaien. In totaal kom je dan op 32 threads, en dat is nog maar het begin.
Dan is er nog IBM, dat samen met Sony en Toshiba de Cell Broadband Engine heeft ontwikkeld. Deze bevat een Power-kern die zelf twee threads kan verwerken, met daaromheen acht zogenaamde Synergistic Processing Elements (SPE’s). Dat zijn gespecialiseerde kernen die vooral goed zijn in multimediaoperaties. De prestaties ervan zijn te bewonderen in de PlayStation 3. Maar ook de Xenon die in de Xbox 360 wordt gebruikt, is op de Power gebaseerd. Deze bevat drie processoren met elk twee threads, en wordt speciaal voor de Xbox gemaakt door de Chartered foundry.
Met het aantal kernen in de eigen Power-processoren doet IBM het echter rustig aan. De Power 6 zal net als zijn voorloper maar twee kernen met elk twee threads bevatten. Net als de Power 4 en 5 zullen de nieuwe processoren wel met z’n tweeën of vieren met een extra L3 cache in één module gestopt worden.
Parallelle software
Hoewel het multicore-concept niet nieuw is, heeft het juist de laatste jaren veel aandacht gekregen. Een van de belangrijkste oorzaken is dat een aantal processorfabrikanten hun prestatieverbeteringen niet meer alleen maar uit hogere kloksnelheden wilde halen. Nu prestatie-per-watt zo’n belangrijk thema – en dus verkoopargument – is, vallen ook keuzen over architecturen anders uit. Dat betekent dat men de ruimte voor snellere processoren even wat minder benut en zijn aandacht heeft verlegd naar parallellisatie op het niveau van processoren, kernen en threads. Ook de sterke opkomst van virtualisatie speelt een rol bij de vraag naar meer parallelle verwerkingskracht.
Deze hele ontwikkeling betekent echter niet dat we over een paar jaar allemaal systemen met tientallen kernen op onze bureaus hebben staan. Niet omdat Intel en AMD ze niet zouden kunnen maken, of omdat gebruikers ze niet zouden kunnen betalen, maar simpelweg vanwege het feit dat de huidige besturingssystemen en applicaties al die threads niet aan het werk kunnen houden. Behalve dat verdere parallelisering van toepassingen veel complexer compilers vraagt, zijn de typische pc-applicaties daar ook niet bijzonder geschikt voor. Bovendien zijn er fundamentele grenzen aan de parallelliseerbaarheid van software.
Memory bottleneck
In de servermarkt zullen grote multicores prima inzetbaar blijken te zijn, met name voor specifieke toepassingen. Denk dan aan wat wel de horizontaal schaalbare applicaties worden genoemd (bijvoorbeeld web servers) of aan high performance computing (bijvoorbeeld wetenschappelijk rekenwerk). Op de pc zal dat echter veel lastiger blijken. Een van de weinige thuistoepassingen zou een zware multimedia-applicatie of een real-time spel in hoge resolutie kunnen zijn. Nu al zijn de gamers onder de pc-bezitters degenen die het meeste aan hun hardware spenderen.
Het besturingssysteem en de applicaties op een desktop of werkstation zullen straks nog wel in staat zijn om vier processoren te benutten. Of dat ook geldt voor acht, zestien of nog meer is echter twijfelachtig. Bovendien leent de architectuur van een general purpose machine als de pc zich niet goed voor zo veel parallellisme. Toegang tot geheugen wordt een steeds groter probleem met al die verschillende threads.
Dat betekent dat als je al die threads aan het werk wilt houden, je ook de rest van de architectuur flink zult moeten opwaarderen. En dat is nu precies wat de RISC-systemen van HP, IBM en Sun sneller en duurder maakt. De processor zelf is niet noodzakelijk veel sneller, maar de rest van het systeem is bijpassend gedimensioneerd. Die mismatch tussen de processor en zijn omgeving zie je op de pc bijvoorbeeld terug in de soms wel vier lagen cache die worden gebruikt om de ‘memory bottleneck’ te beperken.
Groot of snel
Op dit moment zien we fabrikanten dan ook twee verschillende strategieën volgen. Sommige bedrijven zetten helemaal in op multicores. Dat geldt bijvoorbeeld voor Sun, dat zijn kloksnelheden laag houdt en in de toekomst misschien wel honderden kernen op een processor wil zetten. Dat bedrijf is dan ook groot geworden met de verkoop van horizontaal schaalbare internetservers.
IBM en Intel aan de andere kant experimenteren wel met grote multicores, maar doen dat alleen voor hele specifieke markten. Waar Intel zich met zijn Teraflop richt op floating point berekeningen, doet IBM dat voor multimedia. Het aantal threads in hun general purpose-systemen blijft echter beperkt, terwijl de kloksnelheden omhoog blijven gaan. De Power 6 heeft straks net zo veel kernen als zijn voorloper, maar gaat wel op 5 GHz draaien. Hetzelfde geldt overigens voor de volgende Cell-processor. En ook voor de Teraflop experimenteert Intel met vergelijkbare en nog hogere kloksnelheden. Voor de Itanium-reeks werkt het bedrijf aan een processor met vier kernen. De kloksnelheid daarvan blijft echter relatief laag.
Beproefd recept
Naar verwachting zullen de processoren de komende tijd nog wel flink uitdijen in het aantal kernen en het aantal threads. Zodra meer kernen niet meer genoeg bijdragen aan de prestaties, zal in ieder geval voor de general purpose pc-systemen weer worden teruggegrepen op het beproefde recept van steeds hogere kloksnelheden.