Im September 2007 gab das Guinness-Buch der Rekorde den neuen Rekordhalter für das leistungsstärkste verteilte Rechensystem der Welt bekannt. Dabei handelte es sich nicht um einen herkömmlichen Cluster von Hochleistungscomputern, sondern um ein weltweites Netzwerk, das aus normalen PCs und PlayStation-3-Konsolen (PS3) besteht. Dieses verteilte Rechensystem mit dem Namen Folding@Home simuliert die Proteinfaltung, um die Entstehung von Krankheiten zu analysieren.
Bevor die PS3s hinzukamen, konnte das Netzwerk nur 0,25 Petaflops (250.000.000.000.000 Gleitkommaoperationen pro Sekunde) ausführen. Als jedoch der Folding@Home-Client auf den PS3-Rechnern zu laufen begann, vervierfachte sich die Rechengeschwindigkeit innerhalb von sechs Monaten und machte Folding@Home zum ersten verteilten Rechensystem, das die 1-Petaflop-Schwelle durchbrach.
Tabelle 1.1 verdeutlicht die Bedeutung der PS3-Rechner im Folding@Home-Netzwerk. Es gibt nicht annähernd so viele Konsolen wie PCs, aber sie bieten mehr Rechenleistung als die Windows/Mac/Linux-Computer zusammen.
- Tabelle 1.1. Folding@Home Leistungsstatistiken (Aufgenommen am 16. April, 2008)
- 1.1 Hintergrund des Cell-Prozessors
- Geschichte des Cell-Prozessors
- Potenzial des Cell-Prozessors für wissenschaftliches Rechnen
- Tabelle 1.2. Ergebnisse der Studie des Lawrence Berkeley National Laboratory (alle Werte in Gflops/s)
Tabelle 1.1. Folding@Home Leistungsstatistiken (Aufgenommen am 16. April, 2008)
OS Typ |
Aktuelle Pflops |
Aktive CPUs |
Gesamt 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 |
Die enorme Rechenleistung der PS3 wird von der Cell Broadband Engine bereitgestellt, auch Cell-Prozessor oder einfach Cell genannt. Der von der STI Alliance (Sony, Toshiba und IBM) entwickelte Cell-Prozessor kombiniert die Allzweckfähigkeiten der PowerPC-Architektur von IBM mit genügend Rechenleistung, um auch die anspruchsvollsten Gamer und Grafikentwickler zufrieden zu stellen.
Was bedeutet das für Sie? Es bedeutet, dass Sie das Beste aus beiden Welten genießen können: Flexibilität und Rechenleistung. Einerseits können Sie ein gängiges Betriebssystem wie Linux auf dem Cell installieren und Anwendungen so bequem ausführen, als ob sie auf einem PC laufen würden. Andererseits können Sie rechenintensive Algorithmen mit Geschwindigkeiten implementieren, die herkömmliche CPUs weit übertreffen und sogar mit Supercomputing-Geräten konkurrieren.1 Noch unglaublicher ist, dass Sie beides gleichzeitig tun können.
Das Cell macht dies durch eine Arbeitsteilung auf dem Chip möglich: Das Betriebssystem läuft auf einem einzigen PowerPC-Prozessorelement (PPE), und die Hochgeschwindigkeitsberechnungen werden von einer Reihe von Synergistic Processor Elements (SPEs) durchgeführt. Diese beiden Arten von Kernen sind speziell für ihre Aufgaben konzipiert und unterstützen jeweils einen anderen Satz von Befehlen.
Einzeln betrachtet, sind diese Verarbeitungselemente leicht zu verstehen und einfach zu programmieren. Die Schwierigkeit besteht darin, ihren Betrieb zu koordinieren, um ihre Stärken optimal zu nutzen. Um dies zu erreichen, muss ein Programmierer die Cell-spezifischen Programmierbefehle kennen und über ein solides Wissen über die Architektur des Geräts verfügen: die Verarbeitungselemente, die Verbindungen und die Speicherstruktur.
Das Ziel dieses Buches ist es, diese Themen in ausreichender Tiefe zu behandeln, damit Sie Anwendungen erstellen können, die die Fähigkeiten des Cells optimal nutzen. Ein großer Teil dieser Abhandlung befasst sich mit der Architektur des Prozessors, aber nur mit den Aspekten, die Sie im Code verwenden und konfigurieren können. Einige Themen mögen für diejenigen, die nicht daran gewöhnt sind, wie Computerarchitekten zu denken, überwältigend erscheinen, aber machen Sie sich keine Sorgen: Alles wird erklärt, wenn es nötig ist. Und das Ziel dieses Buches ist immer Software.
Das Ziel dieses Kapitels ist es, auf einer grundlegenden Ebene zu erklären, was der Cell-Prozessor ist und wie er funktioniert. Die Diskussion beginnt mit einer Beschreibung des Cell-Hintergrunds, einschließlich seiner Geschichte und Fähigkeiten, und führt dann in die grundlegende Architektur des Prozessors ein.
1.1 Hintergrund des Cell-Prozessors
Der Cell unterscheidet sich so sehr von seinen Vorgängern, dass es hilfreich ist, zu wissen, warum er geschaffen wurde und welche unternehmerischen Kräfte sein Design geprägt haben. Wenn Sie wissen, warum die STI Alliance so viel Zeit und Mühe in den Cell-Prozessor investiert hat, werden Sie besser verstehen, warum es sich lohnt, mehr darüber zu erfahren.
Geschichte des Cell-Prozessors
Sony schloss die Entwicklung der PlayStation 2 im Jahr 1999 ab und brachte sie im folgenden Jahr auf den Markt. Trotz des enormen Erfolgs war der damalige CEO Nobuyuki Idei nervös: Wie konnte Sonys nächste Konsolengeneration die PS2 übertreffen? Was könnten sie noch erreichen? Die Antwort, so beschloss er, war eine doppelte: Die nächste Konsole musste Breitband-Multimedia-Fähigkeiten integrieren und dramatische Verbesserungen bei der grafischen Verarbeitung bieten. Diese hochgesteckten Ziele erforderten eine völlig neue Hardware, und um dies zu ermöglichen, beriet er sich mit dem damaligen CEO von IBM, Louis Gerstner. Gemeinsam erarbeiteten sie das Konzept, das schließlich zum Cell-Prozessor führen sollte.
Der Chef von Sony Computer Entertainment, Ken Kutaragi, konkretisierte die Hardware-Anforderungen und stellte Forderungen, die weit über den Stand der Technik hinausgingen. Ken Kutaragi stellte sich jeden Prozessor als Baustein einer größeren, vernetzten Einheit vor und nannte das Gerät „Cell“. Im Einklang mit Nobuyuki-sans ursprünglicher Absicht wurde das Projekt Cell Broadband Engine (CBE) genannt. Dies ist nach wie vor der offizielle Name des Cell-Prozessors.
Toshiba bekundete sein Interesse an der Verwendung des Cell in seiner Unterhaltungselektronik, und im Jahr 2001 gaben Sony, Toshiba und IBM die Gründung der STI Alliance bekannt. Ihre erklärte Absicht war es, eine bahnbrechende Prozessorarchitektur zu erforschen, zu entwickeln und herzustellen. Sie gründeten das STI Design Center in Austin, Texas, um die Anforderungen des CBE in die Realität umzusetzen.
Als Chefarchitekt der Cell erkannte Jim Kahle, dass die Anforderungen des CBE nicht mit einem herkömmlichen Single-Core-Prozessor erfüllt werden konnten – der Leistungsbedarf wäre zu hoch. Stattdessen entschied er sich für ein energieeffizienteres Design, das mehrere Verarbeitungseinheiten in einem einzigen Chip vereint. Die endgültige Architektur bestand aus neun Kernen: einem zentralen Verarbeitungselement und acht dedizierten Elementen für Hochgeschwindigkeitsberechnungen.
Zum Zeitpunkt der Erstellung dieses Artikels ist das STI Design Center auf mehr als 400 Ingenieure angewachsen. Dr. H. Peter Hofstee, einer der Gründungskonstrukteure der Zelle, ist Chefwissenschaftler und Chefarchitekt der SPE. In einer kürzlich gehaltenen Präsentation nannte er die Hauptziele, die dem Cell-Design zugrunde liegen:
- Hervorragende Leistung bei Spielen und Multimedia-Anwendungen
- Echtzeit-Reaktionsfähigkeit auf den Benutzer und das Netzwerk
- Anwendbarkeit auf einer Vielzahl von Plattformen
Im Jahr 2004 wurde im Halbleiterwerk von IBM in East Fishkill der erste Cell-Prototyp hergestellt. Die STI-Ingenieure installierten Linux und testeten den Prozessor bei Geschwindigkeiten, die über den gemeinhin angegebenen Bereich von 3 bis 4 GHz hinausgingen. Der Prototyp bestand den Test. Im Laufe des nächsten Jahres arbeiteten Sony und IBM fieberhaft an der Integration des Geräts in die nächste Generation der Sony-Konsole, und auf der Electronic Entertainment Expo (E3) 2005 konnten erwartungsfrohe Gamer einen ersten Blick auf die PlayStation 3 werfen.
Im November 2006 wurde die PS3 vollständig auf den Markt gebracht, und die Geschichten über lange Warteschlangen und kaum zurechnungsfähige Kunden werden das Einzelhandelspersonal noch jahrelang amüsieren. Zusätzlich zu ihrem leistungsstarken Cell-Prozessor bot die neue Konsole eine Auflösung von bis zu 1080p und ein Blu-ray-Laufwerk für hochauflösende Videos.
Im selben Jahr veröffentlichte IBM sein erstes CBE Software Development Kit (SDK), um Entwicklern die Erstellung von Anwendungen für die Cell zu ermöglichen. Das SDK bietet Compiler für beide Arten von Verarbeitungselementen, einen kombinierten Simulator/Debugger, zahlreiche Code-Bibliotheken und eine Eclipse-basierte Entwicklungsumgebung. Ein großer Teil dieses Buches befasst sich mit dem SDK und damit, wie Sie damit Anwendungen erstellen können.
Mitte 2008 wurde der erste Cell-basierte Supercomputer, der IBM Roadrunner, im Los Alamos National Laboratory getestet. Mit 12.960 Cell-Prozessoren und 12.960 Opterons erreichte der Roadrunner eine Verarbeitungsgeschwindigkeit von 1,026 Petaflops und ist damit der schnellste der Supercomputer auf der TOP500-Liste. Seine Geschwindigkeit ist mehr als doppelt so hoch wie die des zweitplatzierten Supercomputers BlueGene/L mit 0,478 Petaflops.
Potenzial des Cell-Prozessors für wissenschaftliches Rechnen
Im Jahr 2005 untersuchte das Lawrence Berkeley National Laboratory die Rechenleistung des Cell-Prozessors und hielt seine Ergebnisse in dem Bericht The Potential of the Cell Processor for Scientific Computing fest. Sie simulierten eine Reihe verschiedener Algorithmen und verglichen die Verarbeitungsgeschwindigkeit des Cell mit der ähnlicher Prozessoren: dem AMD Opteron, dem Itanium2 von Intel und dem X1E von Cray. Tabelle 1.2 zeigt die Ergebnisse.
Tabelle 1.2. Ergebnisse der Studie des Lawrence Berkeley National Laboratory (alle Werte in Gflops/s)
Algorithmus |
Zelle Prozessor |
Cray X1E |
AMD Opteron |
Intel Itanium2 |
Dichte Matrixmultiplikation (einfache Genauigkeit) |
||||
Dichte Matrixmultiplikation (doppelte Genauigkeit) |
||||
Symmetrische dünnbesetzte Matrix Vektor-Multiplikation (einfache Genauigkeit)1 |
– |
|||
Symmetrisch Sparse Matrix Vector Multiply (doppelte Genauigkeit)1 |
||||
Nicht symmetrisch Sparse Matrix Vector Multiply (Single Precision)1 |
– |
|||
Vektormultiplikation einer unsymmetrischen dünnbesetzten Matrix (doppelte Genauigkeit)1 |
||||
2-D schnelle Fourier-Transformation (einfache Genauigkeit)2 |
||||
2-D schnelle Fourier-Transformation (doppelte Genauigkeit)2 |
Es gibt zwei Punkte, die zu beachten sind. Erstens beziehen sich die Ergebnisse auf die Berechnungsgeschwindigkeit in Milliarden von Flops (Gleitkommaoperationen pro Sekunde), nicht auf die für die Ausführung des Algorithmus benötigte Zeit. Zweitens: Da die Multiplikatoren der ersten Cell-Generation mit einfacher Genauigkeit arbeiten, ist die Leistung der ersten Cell-Generation bei einfach genauen Werten wesentlich besser als bei doppelt genauen Werten. Die zweite Generation bietet jedoch eine Hardware-Multiplikation von Werten mit doppelter Genauigkeit.
Für einen Ingenieur, der sich für Signalverarbeitung und Computermathematik interessiert (wie ich), sind die Ergebnisse geradezu verblüffend. Die Studie rechtfertigt die ungeheuerlichen Werbeaussagen: Der Cell bietet wirklich Supercomputer-ähnliche Fähigkeiten zu fast den Kosten und der Leistung (etwa 50 bis 60 W) einer normalen CPU.