În septembrie 2007, Guinness Book of World Records a anunțat noul deținător al recordului pentru cel mai puternic sistem de calcul distribuit din lume. Nu era vorba de un cluster tradițional de calculatoare de înaltă performanță, ci de o rețea mondială compusă din PC-uri obișnuite și console PlayStation 3 (PS3). Denumit Folding@Home, acest sistem de calcul distribuit simulează plierea proteinelor pentru a analiza modul în care își au originea bolile.
Înainte ca PS3-urile să se alăture, rețeaua era capabilă de doar 0,25 petaflopi (250.000.000.000.000.000 de operațiuni în virgulă mobilă pe secundă). Dar când clientul Folding@Home a început să ruleze pe PS3-uri, viteza de calcul s-a cvadruplat în șase luni, făcând din Folding@Home primul sistem de calcul distribuit care a depășit bariera de 1 petaflop.
Tabelul 1.1 clarifică semnificația PS3-urilor în rețeaua Folding@Home. Nu sunt nici pe departe la fel de multe console ca și PC-urile, dar acestea oferă mai multă putere de calcul decât computerele Windows/Mac/Linux combinate.
Tabelul 1.1. Statisticile de performanță Folding@Home (Înregistrate la 16 aprilie, 2008)
Tipul de SO |
Pflops actuali |
Uccesoare active . |
Total CPUs |
|
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 |
Puterea de calcul extraordinară a PS3 este asigurată de motorul Cell Broadband Engine, denumit în mod obișnuit procesorul Cell sau pur și simplu Cell. Dezvoltat de Alianța STI (Sony, Toshiba și IBM), Cell combină capacitatea de utilizare generală a arhitecturii PowerPC de la IBM cu o capacitate de prelucrare a numerelor suficientă pentru a satisface chiar și pe cei mai pretențioși gameri și dezvoltatori grafici.
Ce înseamnă acest lucru pentru dumneavoastră? Înseamnă că vă puteți bucura de ce e mai bun din ambele lumi: flexibilitate și putere de calcul. Pe de o parte, puteți instala un sistem de operare comun, cum ar fi Linux, pe Cell și puteți executa aplicații la fel de convenabil ca și cum ar rula pe un PC. Pe de altă parte, puteți implementa algoritmi intensivi de calcul la viteze care depășesc cu mult procesoarele obișnuite și chiar concurează cu dispozitivele de supercalculatoare.1 Mai incredibil este că le puteți face pe amândouă în același timp.
Celula face acest lucru posibil printr-o diviziune a muncii pe cip: Sistemul de operare rulează pe un singur element procesor PowerPC (PPE), iar calculul de mare viteză este efectuat de o serie de elemente procesoare sinergice (SPE). Aceste două tipuri de nuclee sunt proiectate special pentru sarcinile lor și fiecare suportă un set diferit de instrucțiuni.
După ce sunt luate individual, aceste elemente de procesare sunt ușor de înțeles și simplu de programat. Partea dificilă este coordonarea funcționării lor pentru a profita la maximum de punctele lor forte. Pentru a realiza acest lucru, un programator trebuie să cunoască comenzile de programare specifice Cell și să aibă o cunoaștere solidă a arhitecturii dispozitivului: elementele sale de procesare, interconexiunile și structura memoriei.
Scopul acestei cărți este de a acoperi aceste subiecte suficient de profund pentru a vă permite să creați aplicații care să maximizeze capacitățile Cell. O mare parte din acest tratament aprofundează arhitectura procesorului, dar numai aspectele pe care le puteți utiliza și configura în cod. Unele subiecte pot părea copleșitoare pentru cei care nu sunt obișnuiți să gândească precum arhitecții de calculatoare, dar nu vă faceți griji: Totul va fi explicat pe măsură ce apare necesitatea. Iar scopul acestei cărți este întotdeauna software-ul.
Scopul acestui capitol este de a explica, la nivel de bază, ce este și cum funcționează procesorul Cell. Discuția începe cu o descriere a contextului Cell, inclusiv istoricul și capacitățile sale, și continuă cu prezentarea arhitecturii de bază a procesorului.
1.1 Contextul procesorului Cell
Celula este atât de diferită de predecesorii săi încât este util să știm de ce a fost creată și care sunt forțele corporative care i-au modelat proiectarea. Când veți vedea de ce Alianța STI a cheltuit atât de mult timp și efort pentru Cell, veți avea o idee mai bună de ce merită să învățați despre el.
Historia Cell
Sony a terminat dezvoltarea PlayStation 2 în 1999 și a lansat-o în anul următor. În ciuda succesului său extraordinar, directorul general de atunci, Nobuyuki Idei, era nervos: Cum ar putea consola de generație următoare a Sony să depășească PS2? Ce ar mai putea realiza? Răspunsul, a decis el, era dublu: Următoarea ofertă trebuia să integreze capacitatea multimedia în bandă largă și să ofere îmbunătățiri dramatice în ceea ce privește procesarea grafică. Aceste obiective mărețe necesitau un hardware complet nou, iar pentru a face acest lucru posibil, el s-a consultat cu directorul general de atunci al IBM, Louis Gerstner. Împreună au conturat conceptul care avea să ducă în cele din urmă la Cell Processor.
Șeful Sony Computer Entertainment, Ken Kutaragi, a detaliat cerințele hardware și a făcut cereri care depășeau cu mult stadiul actual al tehnologiei. Închipuind fiecare procesor ca un bloc de construcție al unei entități mai mari, conectate în rețea, Ken Kutaragi a numit dispozitivul Cell. În conformitate cu intenția inițială a lui Nobuyuki-san, proiectul s-a numit Cell Broadband Engine (CBE). Acesta rămâne numele oficial al procesorului Cell.
Toshiba și-a exprimat interesul de a utiliza Cell în produsele electronice de consum, iar în 2001, Sony, Toshiba și IBM au anunțat formarea Alianței STI. Intenția lor declarată a fost de a cerceta, dezvolta și produce o arhitectură de procesor revoluționară. Ei au format STI Design Center în Austin, Texas, pentru a transforma cerințele CBE în realitate.
În calitate de arhitect șef al Cell, Jim Kahle a văzut că cerințele CBE nu puteau fi îndeplinite cu un procesor tradițional cu un singur nucleu – cererea de putere ar fi fost prea mare. În schimb, el a ales un design mai eficient din punct de vedere energetic care a încorporat mai multe unități de procesare într-un singur cip. Arhitectura finală a constat din nouă nuclee: un element central de procesare și opt elemente dedicate pentru calcul de mare viteză.
În momentul redactării acestui articol, Centrul de proiectare STI a ajuns la peste 400 de ingineri. Dr. H. Peter Hofstee, unul dintre proiectanții fondatori ai celulei, deține funcțiile de cercetător șef și arhitect șef al SPE. Într-o prezentare recentă, el a enumerat principalele obiective care au stat la baza proiectării Cell:
- Performanțe remarcabile în aplicațiile de jocuri și multimedia
- Răspundere în timp real la utilizator și la rețea
- Aplicabilitate la o gamă largă de platforme
În 2004, uzina de producție de semiconductori a IBM din East Fishkill a produs primul prototip Cell. Inginerii de la STI au instalat Linux și au testat procesorul la viteze dincolo de intervalul declarat în mod obișnuit de 3 până la 4GHz. Prototipul a trecut. Pe parcursul anului următor, Sony și IBM au lucrat febril pentru a integra dispozitivul în consola de generație următoare a Sony, iar jucătorii așteptați au văzut pentru prima dată PlayStation 3 la Electronic Entertainment Expo (E3) din 2005.
Noiembrie 2006 a marcat lansarea comercială completă a PS3, iar poveștile despre cozile lungi și consumatorii abia sănătoși la cap vor amuza personalul din magazine în anii următori. În plus față de creierul său puternic de procesor Cell, noua consolă oferea o rezoluție de până la 1080p și o unitate Blu-ray pentru video de înaltă definiție.
În același an, IBM a lansat primul kit de dezvoltare software (SDK) CBE pentru a permite dezvoltatorilor să creeze aplicații pentru Cell. SDK-ul oferă compilatoare pentru ambele tipuri de elemente de procesare, un simulator/depanator combinat, numeroase biblioteci de cod și un mediu de dezvoltare bazat pe Eclipse. O mare parte din această carte se referă la SDK și la modul în care îl puteți utiliza pentru a construi aplicații.
La mijlocul anului 2008, primul supercomputer bazat pe Cell, numit IBM Roadrunner, a fost testat în Laboratorul Național Los Alamos. Conținând 12.960 de procesoare Cell și 12.960 de Opterons, Roadrunner a atins o viteză de procesare de 1,026 petaflopi și a devenit cel mai rapid dintre supercomputerele de pe lista TOP500. Viteza sa este mai mult decât dublă față de cea a supercalculatorului de pe locul al doilea, BlueGene/L, cu 0,478 petaflops.
Potențialul procesorului Cell pentru calculul științific
În 2005, Lawrence Berkeley National Laboratory a studiat performanțele de calcul ale Cell și și-a consemnat concluziile în raportul The Potential of the Cell Processor for Scientific Computing (Potențialul procesorului Cell pentru calculul științific). Aceștia au simulat o serie de algoritmi diferiți și au comparat viteza de procesare a Cell cu cea a unor procesoare similare: AMD Opteron, Itanium2 de la Intel și X1E de la Cray. Tabelul 1.2 tabulează rezultatele lor.
Tabelul 1.2. Rezultatele studiului Lawrence Berkeley National Laboratory (toate valorile în Gflops/s)
Algoritm |
Celulă Procesor |
Cray X1E |
AMD Opteron |
Intel Itanium2 |
Multiplicare matricială densă (precizie unică) |
||||
Dense înmulțire matricială (dublă precizie) |
||||
Matrice simetrică densă înmulțire vectorială (o singură precizie)1 |
– |
|||
Simetrică multiplicare vectorială cu matrice rare (dublă precizie)1 |
||||
Nonsimetric Multiplicare vectorială cu matrice disparată (precizie unică)1 |
– |
|||
Multiplicare vectorială cu matrice rare nesimetrică (dublă precizie)1 |
||||
2-D transformată Fourier rapidă (precizie unică)2 |
||||
2-D transformată Fourier rapidă (dublă precizie)2 |
Există două aspecte de care trebuie să se țină seama. În primul rând, rezultatele se referă la viteza de calcul în miliarde de flops (operații în virgulă mobilă pe secundă), nu la timpul necesar pentru realizarea algoritmului. În al doilea rând, deoarece multiplicatorii celulei de primă generație sunt de precizie unică, aceasta se comportă mult mai bine cu valori de precizie unică decât cu valori de precizie dublă. Dar a doua generație oferă multiplicarea hardware a valorilor de precizie dublă.
Pentru un inginer interesat de procesarea semnalelor și de matematică computațională (ca mine), rezultatele sunt de-a dreptul uluitoare. Studiul justifică afirmațiile scandaloase de marketing: Celula oferă într-adevăr capacități de tip supercomputer pentru un cost și o putere (aproximativ 50 până la 60 W) aproape egale cu cele ale unui procesor obișnuit.
.