Der Weg in die Exaflops-Ära

David Müller, Supercomputing Systems AG

 

Die Leistung der schnellsten Rechner der Welt ist über die letzten Jahrzehnte exponentiell gestiegen – von einem GigaFlops (1 Milliarde Fliesskomma-Operationen pro Sekunde) 1988 zu einem TeraFlops in 1999 und zu mehr als einem Petaflops in 2008. In einem langfristig angelegten Effort bereitet sich die "Supercomputing Community" auf die Exascale - Ära (1018 Flops) vor, deren Beginn auf circa 2018 prognostiziert wird. Ausgerüstet mit diesen Werkzeugen etabliert sich die rechnergestützte Simulation neben Experiment und Theorie zunehmend als drittes Standbein in den Naturwissenschaften. Im folgenden Artikel sollen sowohl der wissenschaftliche Nutzen wie auch die technischen Herausforderungen und Lösungsansätze solcher Superrechner beschrieben werden.

 

Die Top 500 Liste

Auf der Top 500 Liste ( www.top500.org ) wird alle 6 Monate ein Ranking der leistungsstärksten Rechner erstellt. Seit November 2009 wird die Liste angeführt von "Jaguar" – einer CRAY XT5 mit insgesamt 224'000 AMD x86 Prozessorkernen und fast 450 TB Arbeitsspeicher. Die Maschine hat eine theoretische "Peak Performance" von 2.3 PFlops, wovon hervorragende 1.7 PFlops von der wissenschaftlichen Applikation DCA++ genutzt werden können. Für die Entwicklung dieser Applikation sind Prof. Dr. Thomas Schulthess – mittlerweile Direktor des Swiss National Supercomputing Centre CSCS in Manno/TI – und sein damaliges Team am Oak Ridge National Laboratory 2008 mit dem Gordon Bell Award ausgezeichnet worden. Sie haben als Erste gezeigt, dass Petaflops-Maschinen effizient für reale Applikationen eingesetzt werden können, um neue Einsichten in physikalische Grundlagen, speziell von magnetischen Materialien, zu ermöglichen.

Die Exaflops-Skala

The Case from Science

Die Anwendung DCA++ simuliert das Verhalten von Hochtemperatur-Supraleitern. Das Verständnis der ihnen zugrunde liegenden Mechanismen konnte dank der hohen Effizienz des Codes und der Leistung des "Jaguar" entschieden verbessert werden. Ein weiteres wichtiges Anwendungsgebiet wird die Klimafrage sein. Eine verlässliche Klimamodellierung erfordert eine hohe Maschendichte an Realtime Messdaten auf der Erde und in der Atmosphäre. Die nächste Generation geostationärer Wettersatelliten MTG (MeteoSat Third Generation) mit neuartigen "Imager-" und spektralen "Sounder-" Sensoren wird die Konzentration von klimabestimmenden Gasen wie CO2, Ozon, Wasser in der Atmosphäre mit 1 km Höhenauflösung in Quasi-Echtzeit für Bodenpixel < 1 km bei weitgehend globaler Abdeckung angeben. Die Verarbeitung dieser Datenflut durch eine grosse Nutzergemeinde wird eine der Hauptanwendungen für kostengünstige Superrechner in den nächsten Dekaden sein.

Technische Herausforderungen

Power Wall

Die offensichtlichste Limitierung für weitere Leistungssteigerungen der Rechner ist deren Verlustleistung, die "Power Wall". Eine Leistungsaufnahme um 3 W pro GFlops ist heute typisch; ein Exaflops-Rechner würde, basierend auf heutiger Technik, somit mehrere GW verbrauchen und ist so nicht umsetzbar. Die Verbesserung der Silizium-Prozesstechnologie wird zwar weitere "Shrinkings" der Strukturen ermöglichen, wobei die Leistungseffizienz aber nicht mehr stark verbessert werden kann, da die Leckströme in den Siliziumstrukturen zu zunehmenden Verlusten führen. Ein grosses Potential liegt hingegen in der Prozessorarchitektur. Gängige CPUs sind vor allem auf die maximale Geschwindigkeit in der Ausführung eines sequentiellen Ablaufes optimiert (single thread performance) – dazu sind Verfahren wie "Out-of-Order-Execution", "Branch Prediction" oder "Speculative Execution" eingeführt worden.
Durch diese wird jedoch ein wachsender Anteil der Chipfläche und der verbrauchten Energie für Operationen eingesetzt, deren Resultate in der Folge wieder verworfen werden müssen. Ganz andere Prinzipien sind beispielsweise bei der Entwicklung von Graphikkarten ("Graphics Processing Units", GPU) angewendet worden. GPUs werden heute unter dem Begriff "General Purpose GPU" (GPGPU) auch für wissenschaftliche Anwendungen im grossen Stil eingesetzt.

Eine GPU verfügt über bis zu 240 sehr einfach ausgestaltete Prozessorkerne. Die Ausführungsgeschwindigkeit eines sequentiellen Programms auf einem solchen Prozessor ist bescheiden, da im Gegensatz zu den CPUs auf Verfahren zur Steigerung der "Single Thread Performance" verzichtet wird. Um die GPU trotzdem gut auszulasten, werden daher auf jedem Prozessor viele voneinander unabhängige Anweisungsstränge ("Threads") gestartet. – Muss ein "Thread" auf die Ergebnisse des vorhergehenden Schrittes warten, kommt ein anderer Thread zur Ausführung, so dass das Rechenwerk immer ausgelastet ist. Ein grosser Vorteil dieser Strategie liegt darin, dass viel weniger Verwaltungsaufgaben pro Floating Point Operation ausgeführt werden müssen, was die Energieeffizienz (MFlops/W) wesentlich verbessert.

Parallelismus / Concurrency

Um eine GPGPU effizient einsetzen zu können, muss eine Rechenaufgabe also auf tausende von parallel verarbeitbaren Threads aufgeteilt werden, zwischen welchen keine Datenabhängigkeiten bestehen dürfen. Für Supercomputer ist mit Zehntausenden von GPGPUs zu rechnen, so dass die Applikationen auf 106 oder 107 parallele Threads verteilt werden müssen. Die Programmiermodelle, welche ein effizientes Programmieren mit einem derart hohen Grad an Parallelität erlauben, sind aber selber noch in Entwicklung und ein aktives Forschungsgebiet der Informatik.
Ähnlich wie Graphikprozessoren können auch FPGAs (Field Programmable Gate Arrays) oder Prozessoren mit anwendungsspezifischen Instruktionssätzen massiv zur Erhöhung der Recheneffizienz beitragen. Solche Verfahren werden von der Firma SCS im Embedded Bereich regelmässig eingesetzt.

Widerstandsfähigkeit / Resilience

Heutige Supercomputer verfügen über möglichst wenig fehleranfällige Elemente. Ein permanentes Monitoring sämtlicher relevanter Komponenten macht sie resistent gegen einzelne Ausfälle von Massenspeichern (Festplatten). Um bei Ausfällen einzelner CPUs oder bei Mehrfach-Bitfehlern im Hauptspeicher nicht sämtliche Zwischenresultate zu verlieren, wird regelmässig der gesamte Zustand einer Berechung als "Checkpoint" gesichert, ab welchem bei Bedarf ein "Restart" gemacht werden kann. Mit dem für die "Exa-Scale" erwarteten Anstieg der Anzahl Komponenten wird die statistische Häufigkeit von Fehlern so stark ansteigen, dass ein Checkpoint-Restarting nicht mehr praktikabel ist. Als Gegenmassnahme werden sowohl die Fehlerresistenz wie auch die Fehlertoleranz der Systeme weiter gesteigert werden müssen. So sind beispielsweise gegen Mehrfach-Bitfehler stärkere Prüfsummen als das heute übliche "ECC" denkbar.

Memory Wall

Die Speicherbandbreite ist in den vergangenen Jahrzehnten wesentlich weniger gesteigert worden als die Rechenleistung. Durch den Trend zu immer mehr Prozessorkernen mit einem geteilten Memory Bus wird dieser "Memory Gap" weiter verstärkt. Beim "Caching" werden die zuletzt verwendeten Daten auf dem Prozessorchip vorgehalten, so dass sie bei einem erneuten Zugriff sehr schnell verfügbar sind und keine Last auf dem Memory Bus entsteht. Dieses Verfahren ist bei vielen Anwendungen sehr effektiv. Bei wissenschaftlichen Rechnungen werden hingegen gigantisch grosse Matrizen und Vektoren sequentiell abgearbeitet. Die Grösse dieser Datenstrukturen übersteigt den Platz im Cache um ein Vielfaches. In der Folge muss jeder Wert direkt aus dem Hauptspeicher nachgeladen werden; der Memory Bus muss mehrere Bytes pro Floating Point Operation liefern. Längerfristig versprechen das 3D-Stacking von Prozessor- und Memory-Chips oder die funktionale Verschmelzung der beiden Bausteine zum "Processor in Memory" einen massiven Zuwachs der Speicherbandbreite bei reduziertem Energieverbrauch.

Ausblick

"The race for Exaflops" hat begonnen. Mit der HP2C Initiative am CSCS ist die Schweiz in einer guten Ausgangslage, um an dieser Entwicklung teil zu nehmen. Der Fokus dieser Initiative liegt auf der Optimierung der Anwendungen, damit die Rechnerleistung effizient in wissenschaftliche Erkenntnisse umgemünzt werden kann. Ähnlich wie der in der Box zur Firma Supercomputing Systems AG erwähnte Fahrassistent den Automobilisten beim Bremsen und Ausweichen vor einem Hindernis unterstützt, sollen die kommenden Supercomputer neue Einsichten für die wissenschaftliche Gemeinschaft ermöglichen und der Gesellschaft Herausforderungen wie den Klimawandel frühzeitig aufzeigen.

 

Supercomputing Systems AG

Seit der Gründung von Supercomputing Systems AG (SCS) durch Prof. Dr. Anton Gunzinger vor 16 Jahren hat die Firma als Dienstleister für verschiedene namhafte Computerhersteller Beiträge zur Entwicklung heute eingesetzter Verfahren und Systeme leisten können. SCS ist mit 50 Elektro- und Informatikingenieuren sowie Wissenschaftern vor allem als Entwicklungspartner für die Industrie tätig – Maschinensteuerungen, industrielle Sensorik, Kamerasysteme oder massgeschneiderte betriebsunterstützende Software sind typische Anwendungen. Für die Automobilindustrie konnte SCS zum Beispiel äusserst rechenintensive Bildverarbeitungsalgorithmen so weit optimieren, dass deren kommerzieller Einsatz in Bremsassistenz-Systemen machbar geworden ist.

Dr. David Müller schloss seine Ausbildung am Physik-Institut der Universität Zürich 1998 mit der Promotion in experimenteller Hochenergiephysik ab. Seither ist er bei SCS als Department Head "High Performance Systems" unter anderem für die Planung und Durchführung der Projekte im Bereich Supercomputing verantwortlich.

 

 

[Veröffentlicht: Februar 2010]