211service.com
Løftet om personlige supercomputere
I sidste uge annoncerede Intel et forskningsprojekt, der fik nørder til at hoppe af glæde: den første programmerbare terascale supercomputer på en chip. Virksomheden demonstrerede en enkelt chip med 80 kerner eller processorer og viste, at disse kerner kunne programmeres til at knuse tal med en hastighed på en billion operationer i sekundet, et mål kendt som en teraflop. Chippen er omtrent på størrelse med et stort frimærke, men den har samme beregningshastighed som en supercomputer, der i 1996 optog omkring 2.000 kvadratmeter og trak omkring 1.000 gange mere strøm.

Ikke så super: En supercomputer i 1996 (øverst til venstre), der var i stand til at beregne en billion operationer i sekundet, optog omkring 2.000 kvadratfod og forbrugte 500.000 watt. For nylig afslørede Intel en 80-kernet forskningschip (nederst til højre), der opnår samme beregningshastighed, men som er på størrelse med et stort frimærke og bruger omkring 65 watt.
Denne forskningschip er et af Intels første skridt mod massiv multicore-teknologi, siger Nitin Borkar, ingeniørchef og laboratorieprojektleder hos Intel. Målet, siger han, er at bruge denne chip til at teste teknikker, der kunne gøre massiv multicore-teknologi hurtigere, mere energieffektiv og, mest skræmmende, nem at programmere. Disse teknikker vil blive kanaliseret ind i fremtidige produkter, der kan dukke op, hvis alt går vel, inden for fem til ti år.
Men næsten alle ingeniører i computerindustrien er enige om, at det ikke vil være let at lave forbrugercomputere med hundredvis af kerner. Faktisk er mange ikke engang sikre på, at det kan lade sig gøre. Den mest iøjnefaldende udfordring vil være at finde en måde at revidere softwaren fuldstændigt, så applikationer kan drage fordel af adskillige kerner. Dette omfatter undervisning af softwareudviklere, hvordan man skriver kode til multicore-maskiner – en opgave kendt som parallel programmering – og udvikling af nye værktøjer, der giver dem mulighed for at kode nøjagtigt og effektivt.
Forskere og visionære overvejer allerede, hvordan disse supercomputerchips bedst kan bruges. Intel mener, at genkendelse, minedrift og syntese ( RMS ) applikationer vil være nøglen. Sammenlagt kunne disse teknologier tillade sprogoversættelse i realtid via mobiltelefoner, videosøgning i realtid ved talt udtryk eller billede og bedre anbefalingssystemer til indkøb, måltidsplanlægning og endda sundhedspleje.
For at gøre disse applikationer til virkelighed vil computerindustrien opleve nogle vokseværk, siger David Patterson , professor i datalogi ved University of California, Berkeley. (Han og hans kolleger har en internet side som er vært for diskussioner og giver en hvidbog og videoer om emnet.) Vi er på de tidlige stadier af denne gigantiske forandring, siger Patterson. Han beskriver den retning, som industrien har besluttet at gå i – at opgive præstationsbegrænsede, single-core-processorer til multicore-teknologi – som et Hail Mary-pas kastet i en fodboldkamp. Chipproducenter lægger flere og flere kerner på en chip, men softwareingeniørerne er ikke sikre på, om de kan følge med. Det er en spændende tid for forskere, siger Patterson, hvis vi kan finde ud af, hvordan vi fanger passet.
Fordi klokfrekvensen - målet for processorhastighed - af single-core chips blev ved med at stige støt i årtier, kunne programmører undvige udfordringen med at programmere parallelt, siger John Shalf , datalog ved Lawrence Berkeley Laboratory, i Berkeley, CA. Deres programmer ville køre hurtigere, hvis de bare ventede 18 måneder på, at den næste generation af chip kom, siger han. Men omkring 2002 blev det tydeligt, at disse single-core chips forbrugte for meget strøm og ikke ville være i stand til at opretholde hastighedsstigningerne. Så industrien besluttede at ændre takt: i stedet for at forsøge at få mere hastighed fra en enkelt processor, tilføjede chipproducenter simpelthen en anden processor. Nu, hvor vi ikke kan skrue op for clock-frekvensen, må vi konfrontere parallelisme frontalt, siger Shalf, og den bedste måde at karakterisere branchens reaktion på er udbredt panik.
Hvad er så skræmmende ved parallel programmering? Til at starte med er det blevet henvist til specialister i high-performance computing-verdenen (HPC), som skriver software, der løser specifikke problemer, der kører på maskiner med tusinder og millioner af kerner. Softwaren kan skabe klimaændringsmodeller eller forudsige foldning af proteiner, men den er skrevet til en enkelt besværlig opgave, ikke for forbrugernes luner, der ønsker at tale med en computer, se high-definition video og holde øje med deres aldrende forældre halvvejs over hele landet.
Specifikt skal parallelle programmer skrives, så opgaver kan deles på passende vis mellem processorer. Dette er svært, fordi ikke alle applikationer naturligt har komponenter, der kan adskilles; nogle gange, når de er adskilt, udføres opgaver på forskellige tidspunkter og skaber flaskehalse. Derudover er der komplikationer med delte ressourcer: Hvis en applikation har brug for at få adgang til data i hukommelsen, der deles af ti eller hundreder af andre kerner, kan programmet bremse eller fryse. Desuden kan fejlfinding af parallelle programmer være et mareridt, fordi en fejl ofte er svær at kopiere, hvilket gør kilden til problemet svær at finde.
Men selv med alle udfordringerne er der håb, siger Shalf. HPC-forskere har udviklet porteføljer af parallelle algoritmer, der kunne være nyttige til parallelle forbrugerprogrammer. Derudover er der allerede massivt multicore-produkter på markedet, og de giver fingerpeg om de bedste tilgange fra et arkitektursynspunkt såvel som fra et programmeringssynspunkt. For eksempel et grafikfirma NVIDIA netop udgivet en kommerciel chip med 128 kerner, designet til at gengive grafik til applikationer såsom videospil. Mange af kernerne er til generelle formål, hvilket betyder, at de kan programmeres til at udføre mange forskellige grafikorienterede opgaver. Alternativet er, at kernerne har instruktioner fastkablet i chippen.
Derudover samarbejder Intel, AMD og andre med akademiske forskere for at forsøge at skabe en parallel programmeringsramme, der kan aftales. En tilgang, der ser lovende ud, kaldes transaktionshukommelse, siger Krste Asanović , professor i datalogi ved MIT. (Se Problemet med multicore-computere.) Ved at bruge transaktionshukommelse, en kombination af chip-arkitektur og kode, vil programmører få lov til at tænke mere sekventielt, som de gør, når de programmerer single-core-systemer, og lade systemet give paralleliteten. Asanović siger, at programmører skriver instruktioner, der starter og slutter på en lineær måde, men bag kulisserne kører de parallelt. Denne tilgang kræver samarbejde fra hardwareleverandører såvel som softwareingeniører, fordi hardware og software skal arbejde sammen. De to samfund taler sammen, siger Asanović, men der er ingen konsensus om, hvordan det kommer til at se ud. Han tilføjer, at transaktionshukommelse højst sandsynligt vil være en af en kombination af tilgange, der kan hjælpe med at gøre programmering parallelt lettere.
Uden konsensus om, hvordan man fortsætter med multicore-teknologi, kan forbrugercomputerindustrien dog stå i stå om cirka fem år, siger Shalf. Men han er optimistisk, fordi området for parallel computing er blevet tilført en ny følelse af, at det haster med fremkomsten af dual- og quad-core produkter. I den akademiske verden kan vi være uenige i årevis, siger han, men industrien har en måde, med dets økonomiske imperativ, at finde en løsning ret hurtigt.