I september 2007 offentliggjorde Guinness Book of World Records den nye rekordindehaver for verdens mest kraftfulde distribuerede computersystem. Der var ikke tale om en traditionel klynge af højtydende computere, men om et verdensomspændende netværk bestående af almindelige pc’er og PlayStation 3-konsoller (PS3’er). Dette distribuerede computersystem, der kaldes Folding@Home, simulerer proteinfoldning for at analysere, hvordan sygdomme opstår.
Hvor PS3’erne kom med, kunne netværket kun yde 0,25 petaflops (250.000.000.000.000.000.000 flydepunktsoperationer pr. sekund). Men da Folding@Home-klienten begyndte at køre på PS3’erne, firedobledes beregningshastigheden på seks måneder, hvilket gjorde Folding@Home til det første distribuerede computersystem, der brød 1 petaflop-grænsen.
Tabel 1.1 præciserer betydningen af PS3’erne i Folding@Home-netværket. Der er ikke nær så mange konsoller som pc’er, men de leverer mere regnekraft end Windows/Mac/Linux-computerne tilsammen.
Tabel 1.1. Folding@Home præstationsstatistik (Optaget den 16. april, 2008)
OS Type |
Aktuelle Pflops |
Aktive CPU’er |
Totale CPU’er |
|
Windows |
190,892 |
1.986.517 |
||
Mac OS X/PowerPC |
8.478 |
114,326 |
||
Mac OS X/Intel |
7,428 |
45,480 |
||
Linux |
27,796 |
286,172 |
||
PlayStation 3 |
40.880 |
492,491 |
PS3’s enorme regnekraft leveres af Cell Broadband Engine, der almindeligvis kaldes Cell-processoren eller blot Cell. Cell-processoren er udviklet af STI Alliance (Sony, Toshiba og IBM) og kombinerer den generelle kapacitet fra IBM’s PowerPC-arkitektur med nok talknusning til at tilfredsstille selv de mest krævende gamere og grafikudviklere.
Hvad betyder det for dig? Det betyder, at du kan nyde godt af det bedste fra begge verdener: fleksibilitet og kraft til beregning. På den ene side kan du installere et almindeligt styresystem, f.eks. Linux, på Cell’en og udføre programmer lige så bekvemt, som hvis de kørte på en pc. På den anden side kan du gennemføre beregningsintensive algoritmer med hastigheder, der langt overgår almindelige CPU’er og endda kan konkurrere med supercomputere.1 Endnu mere utroligt er det, at du kan gøre begge dele på samme tid.
Cellen gør dette muligt gennem en arbejdsdeling på chippen: Operativsystemet kører på et enkelt PowerPC Processor Element (PPE), og højhastighedsberegningen udføres af en række Synergistic Processor Elements (SPE). Disse to typer kerner er specielt designet til deres opgaver, og de understøtter hver især et andet sæt instruktioner.
Disse behandlingselementer er hver for sig lette at forstå og ukomplicerede at programmere. Det svære er at koordinere deres funktion, så de udnytter deres styrker bedst muligt. For at opnå dette skal en programmør kende de Cell-specifikke programmeringskommandoer og have et solidt kendskab til enhedens arkitektur: dens behandlingselementer, sammenkoblinger og hukommelsesstruktur.
Sigtet med denne bog er at dække disse emner tilstrækkeligt grundigt til, at du kan oprette programmer, der maksimerer Cell’ens muligheder. En stor del af denne behandling går i dybden med processorens arkitektur, men kun de aspekter, som du kan bruge og konfigurere i kode. Nogle emner kan virke overvældende for dem, der ikke er vant til at tænke som computerarkitekter, men det skal du ikke være bekymret for: Alt vil blive forklaret efterhånden som behovet opstår. Og målet med denne bog er altid software.
Målet med dette kapitel er at forklare, på et grundlæggende niveau, hvad Cell-processoren er, og hvordan den fungerer. Diskussionen begynder med en beskrivelse af Cell’s baggrund, herunder dens historie og muligheder, og fortsætter med at introducere processorens grundlæggende arkitektur.
1.1 Baggrunden for Cell-processoren
Cellen er så forskellig fra sine forgængere, at det er nyttigt at vide noget om, hvorfor den blev skabt, og hvilke virksomhedskræfter der har formet dens design. Når du ser, hvorfor STI Alliance brugte så meget tid og kræfter på Cell, får du en bedre idé om, hvorfor det er værd at lære mere om den.
Historie om Cell
Sony afsluttede udviklingen af PlayStation 2 i 1999 og udgav den året efter. På trods af dens enorme succes var den daværende administrerende direktør Nobuyuki Idei nervøs: Hvordan skulle Sonys næste generation af konsoller kunne overgå PS2? Hvad mere kunne de opnå? Svaret, besluttede han, var todelt: Det næste produkt skulle integrere bredbåndsmultimediefunktioner og give dramatiske forbedringer i den grafiske behandling. Disse høje mål krævede helt ny hardware, og for at gøre det muligt konfererede han med IBM’s daværende administrerende direktør, Louis Gerstner. Sammen udformede de det koncept, der i sidste ende skulle føre til Cell Processor.
Den øverste chef for Sony Computer Entertainment, Ken Kutaragi, uddybede hardwarekravene og stillede krav, der gik langt ud over det aktuelle tekniske niveau. Ken Kutaragi forestillede sig hver enkelt processor som en byggesten i en større, netværksbaseret enhed og kaldte enheden for Cell. I overensstemmelse med Nobuyuki-san’s oprindelige hensigt blev projektet kaldt Cell Broadband Engine (CBE). Dette er fortsat det officielle navn for Cell-processoren.
Toshiba udtrykte interesse for at bruge Cell i deres forbrugerelektronik, og i 2001 meddelte Sony, Toshiba og IBM, at de havde dannet STI Alliance. Deres erklærede hensigt var at forske i, udvikle og fremstille en banebrydende processorarkitektur. De dannede STI Design Center i Austin, Texas, for at omsætte CBE’s krav til virkelighed.
Som CELL’s chefarkitekt så Jim Kahle, at CBE’s krav ikke kunne opfyldes med en traditionel single-core-processor – kravet til effekt ville være for stort. I stedet valgte han et mere strømbesparende design, der inkorporerede flere behandlingsenheder i en enkelt chip. Den endelige arkitektur bestod af ni kerner: et centralt behandlingselement og otte dedikerede elementer til højhastighedsberegning.
I skrivende stund er STI Design Center vokset til mere end 400 ingeniører. Dr. H. Peter Hofstee, en af cellens grundlæggende designere, har stillingerne som chefforsker og chefarkitekt for SPE. I en nylig præsentation opregnede han de vigtigste mål, der lå til grund for Cell’s design:
- Outmærket ydeevne ved spil og multimedieapplikationer
- Realtidsresponsivitet over for brugeren og netværket
- Anvendelighed på en lang række platforme
I 2004 producerede IBM’s fabrik til fremstilling af halvledere i East Fishkill den første Cell-prototype. STI-ingeniørerne installerede Linux og testede processoren ved hastigheder, der ligger ud over det normalt angivne interval på 3 til 4 GHz. Prototypen bestod. I løbet af det næste år arbejdede Sony og IBM febrilsk på at integrere enheden i Sonys næste generation af konsoller, og forventningsfulde spillere fik deres første glimt af PlayStation 3 på Electronic Entertainment Expo (E3) i 2005.
November 2006 markerede den fulde kommercielle lancering af PS3, og fortællingerne om lange køer og knapt så raske forbrugere vil underholde detailhandelspersonalet i mange år fremover. Ud over den kraftige Cell-processorhjerne gav den nye konsol opløsning på op til 1080p og et Blu-ray-drev til video i høj opløsning.
Samme år udgav IBM sit første CBE Software Development Kit (SDK) for at gøre det muligt for udviklere at lave applikationer til Cell. SDK’et indeholder compilere til begge typer af behandlingselementer, en kombineret simulator/debugger, adskillige kodebiblioteker og et Eclipse-baseret udviklingsmiljø. En stor del af denne bog handler om SDK’et, og hvordan du kan bruge det til at bygge applikationer.
Medio 2008 blev den første Cell-baserede supercomputer, kaldet IBM Roadrunner, testet i Los Alamos National Laboratory. Roadrunner, der indeholder 12 960 Cell-processorer og 12 960 Opterons, nåede en behandlingshastighed på 1,026 petaflops og er blevet den hurtigste af de supercomputere, der er opført på TOP500-listen. Dens hastighed er mere end dobbelt så høj som den hastighed, som den næstsidste supercomputer, BlueGene/L, har med 0,478 petaflops.
Potential of the Cell Processor for Scientific Computing
I 2005 undersøgte Lawrence Berkeley National Laboratory Cell’s beregningsevne og registrerede deres resultater i rapporten The Potential of the Cell Processor for Scientific Computing. De simulerede en række forskellige algoritmer og sammenlignede Cell’s behandlingshastighed med lignende processorer: AMD Opteron, Intel’s Itanium2 og Cray’s X1E. Tabel 1.2 indeholder en tabel med deres resultater.
Tabel 1.2. Resultater af Lawrence Berkeley National Laboratory-undersøgelsen (alle værdier i Gflops/s)
Algoritme |
Celle Processor |
Cray X1E |
AMD Opteron |
Intel Itanium2 |
|
Dense matrixmultiplikator (enkelt præcision) |
|||||
Dense matrix multiplicere (dobbelt præcision) |
|||||
Symmetrisk sparsom matrix vektormultiplikator (enkelt præcision)1 |
– |
||||
Symmetrisk sparsom matrixvektormultiplikator (dobbelt præcision)1 |
|||||
Nonsymmetrisk Sparse Matrix Vector Multiply (Single Precision)1 |
– |
||||
Nonsymmetrisk sparsom matrixvektormultiplikator (dobbelt præcision)1 |
|||||
2-D hurtig Fouriertransformation (enkelt præcision)2 |
|||||
2-D hurtig Fouriertransformation (dobbelt præcision)2 |
Der er to punkter, som man skal være opmærksom på. For det første henviser resultaterne til beregningshastigheden i milliarder af flops (floating-point-operationer pr. sekund) og ikke til den tid, der er nødvendig for at udføre algoritmen. For det andet, fordi første generation af Cell’s multiplikatorer er enkelt præcision, klarer første generation af Cell sig meget bedre med værdier med enkelt præcision end med værdier med dobbelt præcision. Men den anden generation giver hardware-multiplikation af værdier med dobbelt præcision.
For en ingeniør med interesse for signalbehandling og beregningsmatematik (som jeg selv) er resultaterne intet mindre end forbløffende. Undersøgelsen berettiger de uhyrlige markedsføringsanprisninger: Cell giver virkelig en supercomputerlignende kapacitet til næsten samme pris og effekt (ca. 50 til 60 W) som en almindelig CPU.