Zum Hauptinhalt Zur Navigation

Supercomputer: Wie die Exaflop-Marke geknackt werden soll

Ist Moore's Law am Ende? Das Erreichen der Exaflop-Marke scheint für Hersteller von Supercomputern nicht so einfach zu sein. 2020 soll eine solche Maschine installiert sein - ein spannender Wettbewerb auf dem Weg zum Exascale-Computing ist bis dahin sicher.
/ Stefan Lankes
20 Kommentare News folgen (öffnet im neuen Fenster)
Sunway Taihu Light, der weltweit schnellste Supercomputer (Bild: NRCPC)
Sunway Taihu Light, der weltweit schnellste Supercomputer Bild: NRCPC

Exascale-Computing ist bedeutsam - eine Meinung, die auch Barack Obama teilt. Mit einer Executive Order unterstrich der Präsident der Vereinigten Staaten unlängst ganz offiziell die Bedeutung des Themas. Ein solches Dekret ist kein Gesetz und mit keinem Förderprogramm verbunden.

Es führt den Verwaltungsbeamten aber die Bedeutsamkeit des Hochleistungsrechnens vor Augen. Zudem verlangt es koordiniertes Handeln, um den durch das Hochleistungsrechnen erzielten ökonomischen und wissenschaftlichen Erfolg zu maximieren. Doch was sind die Ziele des Exascale-Computings und welche Herausforderung sind auf dem Weg dorthin zu bewältigen?

10^18 Fließkommaoperationen pro Sekunde

Exascale bedeutet, dass ein System 10^18 Fließkommaoperationen pro Sekunde (Flops) durchführen kann. Diese gewaltige Anzahl von Operationen dient etwa der Simulation von Tsunamis und Sturmfluten - Naturkatastrophen, die in der Regel immense Schäden nach sich ziehen.

Das Tohoku-Erdbeben im Jahr 2011 forderte in Japan 18.000 Menschenleben, der ökonomische Schaden wird auf 195 bis 305 Milliarden US-Dollar geschätzt. Ein adäquates und genaues Vorhersagemodell könnte die Folgen solcher Naturkatastrophen mindern, doch die notwendige Rechenleistung hierfür kann nur ein Hochleistungssystem erbringen.

Die Prozessoren werden immer schneller, die Anzahl der Rechnerknoten innerhalb eines Clusters steigt weiter an. Das Erreichen der Exaflop-Marke (nach Erreichen der Peta- und Teraflop-Marke) scheint dennoch nicht ganz einfach zu sein. Technisch gesehen sind grundsätzlich drei Herausforderungen zu lösen.

Herausforderungen für das Erreichen der Exaflop-Marke

Moore's Law scheint sich zumindest zu verlangsamen , wenn nicht sogar auszulaufen. Das bedeutet implizit, dass die Beschleunigung der Prozessoren durch größere Caches oder mehr Kerne an ihre Grenzen stößt. Spezialisierung ­­- also die Verwendung von GPUs oder die Integration von breiteren Vektoreinheiten ­- scheinen der favorisierte Lösungsweg zu sein. Allerdings steigt die Komplexität der Programmierung stark an.

Früher waren die Systeme homogen, heute besteht beispielsweise das Titan-System vom Oak Ridge National Laboratory aus 18.688 Rechenknoten mit insgesamt 29.908 Opteron-Kernen und 18.688 Nvidia-GPUs. Der Entwurf skalierender Programme, die das komplette, heterogene System ausnutzen, ist eine große Herausforderung. Ganz plakativ ist das aus den Ergebnissen des Linpack-Benchmarks aus der Top 500 abzulesen: So erzielt das System nur einen Wert von 17,5 Petaflops, während der theoretische Höchstwert bei 27,1 Petaflops liegt.

Im Vergleich zu klassischen, homogenen Systemen ist das Verhältnis schlecht: Stuttgarts Hazel Hen erzielt beispielsweise ein Verhältnis von 5,6 zu 7,2 Petaflops. Bei Nicht-x86-Systemen sieht es meist noch besser aus - der japanische K-Computer mit Sparc64-Prozessoren kommt auf ein Verhältnis von 10,5 Petaflops zu 11,3 Petaflops.

An der Effizienz hapert es noch

Das zweite große Problem ist der hohe Energieverbrauch. So wurde in einer Studie angenommen, dass Exascale-Systeme maximal 20 Megawatt benötigen dürfen - solche Systeme müssten demnach 50 Gigaflops/Watt erzielen. Zum Vergleich: Im Jahr 2010 installierte das Oak Ridge National Laboratory das Jaguar-System, das 0,25 Gigaflops/Watt erzielt. Der aktuelle schnellste Supercomputer, der Sunway Taihu Light , kommt auf immerhin 6 Gigaflops/Watt.

Die Historie gibt Grund zur Annahme (lineare Fortführung der Linpack-Ergebnisse), dass 2020 bis 2022 eine Exaflop-Maschine installiert werden wird. Am Beispiel von Oak Ridge würde dies bedeuten, dass das Labor in einer Dekade die Leistung um den Faktor 500 steigern und zeitgleich das Gigaflops/Watt-Verhältnis um den Faktor 200 verbessern müsste.

Anforderungen in dieser Dimension hat es bisher noch nicht gegeben. Die Entwicklungen im Bereich des nichtflüchtigen Speichers (NVM) wie 3D-Xpoint oder generell sogenannter Storage Class Memory stehen daher unter genauer Beobachtung. Zumindest der lesende Speicherzugriff benötigt sehr wenig Energie und stellt somit eine attraktive Lösung für das Hochleistungsrechnen dar.

Ausfallwahrscheinlichkeit des Gesamtsystems steigt

Das dritte Problem schließlich liegt in der Ausfallsicherheit. Neu ist es natürlich nicht - aber es wird größer, da die Anzahl der Komponenten ansteigt und somit auch die Ausfallwahrscheinlichkeit des Gesamtsystems. Dies gilt für die Hardware, aber auch für die Software, die sich aus immer größeren Modulen zusammensetzt.

Eine etablierte Technik, um die Systemrobustheit zu erhöhen, ist das Checkpointing. Hierunter versteht man das Anlegen von Sicherheitspunkten, um nach Auftreten eines Fehlers und anschließender erfolgreicher Reparatur die Anwendung fortzusetzen. Allerdings werden diese Checkpoints meist im User-Space realisiert, belasten das Storage System, beeinflussen die Leistungsfähigkeit und erhöhen den Energieverbrauch.

Auch hier stellen nichtflüchtige Speicher eine interessante Alternative zu konventionellen Techniken dar, um In-Memory-Checkpoints anzulegen. Zudem werden Algorithmen entwickelt, die vereinzelten Fehlern gegenüber robust sind. Dies können beispielsweise Gleichungslöser sein, die das Kippen einzelner Speicherzellen tolerieren.

Ohne Linux läuft kaum etwas

Auch die Systemsoftware steht vor großen Herausforderungen. Zurzeit ist Linux das dominierende Betriebssystem im Bereich des Hochleistungsrechnens. Linux ist ein hervorragendes Betriebssystem, aber auch äußerst komplex - eine Vorhersage des Laufzeitverhaltens ist kaum möglich. Ein unwichtiger Interrupt kann jede Ausführung verzögern oder unterbrechen. Das kann sich negativ auf das Laufzeitverhalten des Gesamtsystems auswirken. Beispielsweise kann ein einzelner Thread in einer kollektiven Operation, in der alle Threads gemeinsam etwas ausführen, durch ein verspätetes Eintreffen die anderen Threads blockieren.

Die Verwendung leichtgewichtiger Betriebssysteme (englisch: Lightweight Kernel, LWK) kann dieses sogenannte 'OS Noise' reduzieren. Die Realisierung nur der minimal benötigten Softwarekomponenten vermeidet Seiteneffekte. Ein gutes Beispiel hierfür ist IBMs Compute Node Kernel (CNK): Er besteht aus rund 5.000 Zeilen C++-Code und skaliert sehr gut. Allerdings ist die Kompatibilität zu bestehenden Unix-Derivaten stark eingeschränkt, was wiederum einen höheren Aufwand für den Anwendungsentwickler bedeutet.

Abgespecktes Linux als Alternative

Ein abgespecktes Linux, befreit von unnötigen Features und nur ausgestattet mit relevanten Elementen für das Hochleistungsrechnen, wäre eine hervorragende Alternative. Ein Beispiel hierfür ist Zepto-OS(öffnet im neuen Fenster) . Allerdings ist dessen Pflege aufwendig, da Änderungen im Linux-Kernel rückzuführen sind. Zudem sind hiermit keine so guten Ergebnisse wie mit klassischen LWKs möglich.

Sogenannte Multi-Kernel sind eine Symbiose aus leichtgewichtigen (LWK) und schwergewichtigen Kernels (englisch: Fullweight Kernels, FWK) mit umfangreichen Programmierschnittstellen. Meistens wird hierbei Linux als FWK verwendet, der nur auf einzelnen Prozessorkernen läuft. Die anderen Kerne verwaltet das LWK. Typischerweise wird eine Linux-Anwendung auf die LWKs ausgelagert. Solange die Anwendungen im User-Space rechnen, profitieren sie vom LWK und können dort besser skalieren. Nur beim Aufruf eines Systemaufrufs muss Linux aushelfen und diese bearbeiten.

Unterschiede gibt es dabei zwischen den Vertretern der Multikernels: Bei mOS wird die Anwendung zwischen den einzelnen Betriebssysteminstanzen hin und her migriert, während bei Mckernel ein Proxy auf dem Linux-System existiert, der Anfragen zur Bearbeitung von Linux-Systemaufrufen entgegennimmt. Das japanische Forschungszentrum Riken entwickelt den Mckernel(öffnet im neuen Fenster) für seinen nächsten Supercomputer, während mOS ( PDF(öffnet im neuen Fenster) ) ein Forschungsprojekt von Intel ist.

Geringerer Overhead durch Unikernels

Unikernels brechen mit der klassischen Trennung von privilegierten und unprivilegierten Bereichen (user space vs. kernel space). Jeder Systemaufruf kann somit als Funktionsaufruf realisiert werden, was einen geringeren Overhead verspricht. Allerdings kann damit jede Anwendung direkt auf die Hardware zugreifen, was sicherheitstechnisch meist unerwünscht ist. Zum Einsatz kommen solche Kernels häufig im Bereich des Cloud Computings, wo sie innerhalb einer virtuellen Maschine laufen, die den Schutz des Systems garantiert.

Auch im Hochleistungsrechnen sind solche Kernel interessant, da die Anwendungen häufig in einem kontrollierten Umfeld laufen und Sicherheitsmechanismen auch um ein Cluster existieren. Der einzelne steht hier nicht im Fokus. Hermitcore stellt ein Forschungsprojekt in diesem Bereich dar und prüft die Einsatzfähigkeit eines solchen Systems. Dieser Ansatz gehört auch gleichzeitig zu den Multikernels, da Linux auf einem isolierten Prozessorkern läuft, um eine breitere Treiberunterstützung zu garantieren.

McKernel für Supercomputer

Wohl schon zu den Klassikern gehört der Microkernel L4: Bei einem Microkernel werden alle Gerätetreiber und Dateisysteme als eigenständige Prozesse realisiert. Der Kernel bietet nur Schnittstellen zur Behandlung von Interrupts, zur Realisierung eines Planungsverfahrens und zur Umsetzung von Interprozesskommunikationsmechanismen an. Dies verspricht eine exzellente Skalierbarkeit.

Im Projekt FFMK wird L4 für das Hochleistungsrechnen erweitert. Um eine Binärkompatibilität zu Linux zu gewährleisten, besteht die Möglichkeit, Linux zu paravirtualisieren. Bei der Paravirtualisierung wird die Verwendung von privilegierten Instruktionen in Funktionen gekapselt, welche die Anfragen zum Host weiterleiten. Bei L4 können die Anwendungen zudem entkoppelt und direkt von L4 kontrolliert werden, was das Hintergrundrauschen reduziert und die Skalierbarkeit erhöht. Initiiert die Anwendung einen Systemaufruf, erhält Linux die Kontrolle über die Anwendung zurück. Im Unterschied zu den Multikernel-Ansätzen läuft Linux nicht parallel zum LWK auf der Hardware. Vielmehr behält L4 stets die Kontrolle über das Gesamtsystem und Linux ist nur Gast in einer paravirtualisierten Umgebung.

Erreichen der Exascale-Marke

Die Welt der Systemsoftware ist in Bewegung geraten und es ist spannend zu beobachten, wie die Exascale-Marke erreicht wird. Für den Nachfolger des japanischen K-Computers wird der Hersteller Fujitsu zu einem Prozessor aus der ARMv8-Linie wechseln. Mckernel soll als skalierendes Betriebssystem eingesetzt werden. Das mag für einen Außenstehenden überraschend sein, da Mckernel für einen Xeon Phi entwickelt wurde. Es muss zunächst seine Praxistauglichkeit beim neuen Supercomputer Oakforest-Pacs der Universität Tokio belegen, der aus 8.208 Xeon-Phi-Prozessoren besteht und noch dieses Jahr in Betrieb gehen soll.

Auf chinesischer Seite werden bis Ende 2017 drei Supercomputer entwickelt und evaluiert, um den vielversprechendsten Ansatz für ein Exascale-System zu ermitteln. Mit dessen Hilfe soll die Exascale-Marke durchbrochen werden. Aufgrund des Exportverbots der USA von Hochleistungsprozessoren an China werden die drei Systeme keine Intel-Prozessoren verwenden.

Dadurch wird ein System auf einer ARM-Architektur basieren, ein anderes auf der chinesischen Eigenentwicklung des Sunway-Prozessors und ein drittes soll die chinesische Fortentwicklung einer x86-Architektur verwenden. Letztere ist durch ein Lizenzabkommen zwischen AMD und dem chinesischen Hersteller Sugon möglich. Da die Chinesen die Top 500 derzeit mit einer Eigenentwicklung anführen, ist ein spannender Wettbewerb zu erwarten.

Entwicklung im Supercomputer-Mutterland USA

Doch wie sieht es im Supercomputer-Mutterland USA aus? Im Lawrence Livermore National Laboratory und im Oak Ridge National Laboratory sollen noch im Jahr 2017 Systeme basierend auf IBMs Power9 -CPUs und Nvidias GPUs entstehen, die beide schneller als der aktuelle Spitzenreiter der Top 500 sein sollen. Die Systeme sind aus Arbeiten der Openpower Foundation entstanden - im Prinzip eine Kooperation von Firmen, um mit dem bisherigen HPC-Dominator Intel konkurrieren zu können.

Intel will seine Marktposition verteidigen und wird im Jahr 2018 das Aurora -System für das Argonne National Laboratory (ANL) bauen, das aus dem Nachfolger der aktuellen Xeon Phi bestehen soll. Die Messlatte soll hierdurch noch einmal höher gelegt werden. Hierfür ist es wichtig, dass die aktuelle Generation ( Knights Landing ) noch in diesem Jahr belegt, dass sie eine gute Basis für zukünftige HPC-Systeme darstellt.


Relevante Themen