Löftet om personliga superdatorer

Förra veckan tillkännagav Intel ett forskningsprojekt som fick nördar att hoppa av glädje: den första programmerbara terascale superdatorn på ett chip. Företaget demonstrerade ett enda chip med 80 kärnor, eller processorer, och visade att dessa kärnor kunde programmeras för att knäcka siffror med en hastighet av en biljon operationer per sekund, ett mått som kallas teraflop. Chippet är ungefär lika stort som ett stort frimärke, men det har samma beräkningshastighet som en superdator som 1996 tog upp cirka 2 000 kvadratfot och drog cirka 1 000 gånger mer ström.





Inte så super: En superdator 1996 (överst till vänster) som kunde beräkna en biljon operationer per sekund tog upp cirka 2 000 kvadratfot och förbrukade 500 000 watt. Nyligen presenterade Intel ett 80-kärnigt forskningschip (nederst till höger) som uppnår samma beräkningshastighet men som är lika stort som ett stort frimärke och använder cirka 65 watt.

Detta forskningschip är ett av Intels första steg mot massiv multicore-teknologi, säger Nitin Borkar, ingenjörschef och labbprojektledare på Intel. Målet, säger han, är att använda detta chip för att testa tekniker som kan göra massiv multicore-teknik snabbare, mer energieffektiv och, mest skrämmande, lätt att programmera. Dessa tekniker kommer att omvandlas till framtida produkter som kan dyka upp, om allt går som det ska, inom fem till tio år.

Men nästan alla ingenjörer inom datorbranschen är överens om att det inte kommer att vara lätt att tillverka konsumentdatorer med hundratals kärnor. Faktum är att många inte ens är säkra på att det kan göras. Den mest påfallande utmaningen kommer att vara att hitta ett sätt att fullständigt se över programvara så att applikationer kan dra nytta av många kärnor. Detta inkluderar att lära programvaruutvecklare hur man skriver kod för flerkärniga maskiner – en uppgift som kallas parallell programmering – och att utveckla nya verktyg som låter dem koda exakt och effektivt.



Forskare och visionärer funderar redan på hur dessa superdatorchips bäst kan användas. Intel tror att igenkänning, gruvdrift och syntes ( RMS ) applikationer kommer att vara nyckeln. Sammantaget kan dessa teknologier möjliggöra realtidsöversättning av språk via mobiltelefoner, realtidsvideosökning med talad fras eller bild, och bättre rekommendationssystem för shopping, måltidsplanering och till och med hälsovård.

För att göra dessa applikationer till verklighet kommer datorindustrin att uppleva en del växtvärk, säger David Patterson , professor i datavetenskap vid University of California, Berkeley. (Han och hans kollegor har en hemsida som är värd för diskussioner och tillhandahåller en vitbok och videor om ämnet.) Vi är i de tidiga stadierna av denna gigantiska förändring, säger Patterson. Han beskriver i vilken riktning branschen har beslutat att gå – att överge prestandabegränsade, enkärniga processorer för flerkärnig teknologi – som ett Hail Mary-pass som kastas i en fotbollsmatch. Chiptillverkare lägger fler och fler kärnor på ett chip, men mjukvaruingenjörerna är inte säkra på om de kan hänga med. Det är en spännande tid för forskare, säger Patterson, om vi kan ta reda på hur vi ska fånga passet.

Eftersom klockfrekvensen – måttet på processorhastighet – för enkärniga chips fortsatte att öka stadigt i årtionden, kunde programmerare undvika utmaningen att programmera parallellt, säger John Shalf , datavetare vid Lawrence Berkeley Laboratory, i Berkeley, CA. Deras program skulle köras snabbare om de bara väntade 18 månader på att nästa generations chip skulle komma, säger han. Men omkring 2002 blev det uppenbart att dessa enkärniga chips förbrukade för mycket ström och inte skulle kunna bibehålla hastighetsökningarna. Så industrin bestämde sig för att ändra takt: istället för att försöka få ut mer hastighet från en enda processor, lade chiptillverkarna helt enkelt till en annan processor. Nu när vi inte kan höja klockfrekvensen måste vi möta parallellism direkt, säger Shalf, och det bästa sättet att karakterisera branschens svar är utbredd panik.



Vad är det som är så skrämmande med parallell programmering? Till att börja med har det förvisats till specialister inom högpresterande datorer (HPC) som skriver programvara som löser specifika problem som körs på maskiner med tusentals och miljontals kärnor. Programvaran kan skapa klimatförändringsmodeller eller förutsäga veckningen av proteiner, men den är skriven för en enda mödosam uppgift, inte för konsumenternas nycker som vill prata med en dator, titta på högupplöst video och hålla koll på deras åldrande föräldrar halvvägs över landet.

Specifikt måste parallella program skrivas så att uppgifter kan delas på lämpligt sätt mellan processorer. Detta är svårt eftersom inte alla applikationer naturligt har komponenter som kan separeras; ibland när de är åtskilda slutförs uppgifter vid olika tidpunkter och skapar flaskhalsar. Dessutom finns det komplikationer med delade resurser: om ett program behöver komma åt data i minnet som delas av tiotals eller hundratals andra kärnor, kan programmet sakta ner eller frysa. Dessutom kan felsökning av parallella program vara en mardröm eftersom ett misstag ofta är svårt att kopiera, vilket gör källan till problemet svår att hitta.

Men även med alla utmaningar finns det hopp, säger Shalf. HPC-forskare har utvecklat portföljer av parallella algoritmer som kan vara användbara för parallella konsumentprogram. Dessutom finns det redan massiva flerkärniga produkter på marknaden, och de ger ledtrådar om de bästa tillvägagångssätten från en arkitektursynpunkt såväl som från en programmeringssynpunkt. Till exempel ett grafikföretag NVIDIA släppte just ett kommersiellt chip med 128 kärnor, designat för att rendera grafik för applikationer som videospel. Många av kärnorna är generella, vilket innebär att de kan programmeras för att utföra många olika grafikorienterade uppgifter. Alternativet är att kärnorna har instruktioner fastanslutna i chippet.



Dessutom samarbetar Intel, AMD och andra med akademiska forskare för att försöka skapa ett ramverk för parallellprogrammering som man kan komma överens om. Ett tillvägagångssätt som ser lovande ut kallas transaktionsminne, säger Krste Asanović , professor i datavetenskap vid MIT. (Se Problemet med flerkärniga datorer.) Genom att använda transaktionsminne, en kombination av chiparkitektur och kod, kommer programmerare att tillåtas tänka mer sekventiellt, som de gör när de programmerar system med en kärna, och låta systemet tillhandahålla parallelliteten. Asanović säger att programmerare skriver instruktioner som börjar och slutar på ett linjärt sätt, men bakom kulisserna kör de parallellt. Detta tillvägagångssätt kräver samarbete från såväl hårdvaruleverantörer som mjukvaruingenjörer eftersom hårdvaran och mjukvaran måste fungera tillsammans. De två samhällena pratar, säger Asanović, men det finns ingen konsensus om hur det kommer att se ut. Han tillägger att transaktionsminne med största sannolikhet kommer att vara ett av en kombination av tillvägagångssätt som kan hjälpa till att göra parallellprogrammering lättare.

Utan konsensus om hur man ska gå vidare med flerkärnig teknologi kan dock konsumentdatorindustrin stå stilla om cirka fem år, säger Shalf. Men han är optimistisk eftersom området parallell beräkning har fått en ny känsla av brådska med framväxten av produkter med dubbla och fyrkärniga. I den akademiska världen kan vi vara oense i flera år, säger han, men industrin har ett sätt, med dess ekonomiska imperativ, att komma överens om en lösning ganska snabbt.

Dölj