Der Mythos Exascale und das neue Paradigma der Parallelen Programmierung
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Trends Supercomputer von morgen brauchen bessere Programmierkonzepte Der Mythos Exascale und das neue Paradigma der Parallelen Programmierung von Michael Steyer Die IT-Branche steht vor der Exascale-Challenge. Das ist die Herausforderung, einen Supercomputer mit 1 Exaflops wissenschaftlicher Rechenleistung (64 Bit Gleitkomma) zu bauen, der also 1 Trillion Berechnungen pro Sekunde durchführt. Das macht klar: Die Zeiten, in denen diese kostspieligen Computer mit eigens für sie entwickelten Spezialprogrammen betrieben werden müssen, sind passé. Beim High Performance Computing (HPC) werden sehr große Computer genutzt, um einige der schwierigsten Rechenprobleme der Welt zu lösen. Diese „Supercomputer“ werden dort eingesetzt, wo die Darstellung des realen Problems zu groß, zu klein, zu schnell, zu langsam oder zu komplex ist, um die resultierenden Fragen experimentell direkt zu beantworten. Viele wissenschaftliche Durchbrüche beruhen auf theoretischen Modellen, die dann auf den Supercomputern simuliert werden. Neben Theoriebildung und Experiment hat sich die Simulation längst als dritte Säule der Wissenschaft etabliert – in Astrophysik, Medizin, Energieforschung, Material- und Lebenswissenschaften oder auch Klimaforschung. Beispielsweise stammt der tägliche Wetterbericht aus dem Supercomputer.
Es liegt auf der Hand, dass Volkswirtschaften, Forschungsinstitute und Unternehmen, welche Modellierung und Simulation aktiv nutzen, unter denjenigen sind, die im Laufe der Zeit Wettbewerbsvorteile erlangen und wirtschaftlichen Nutzen daraus ziehen werden. Daher gibt es derzeit ein weltweites Gerangel um Investitionen in große, hochmoderne HPC-Systeme. Das Exascale-Wettrennen Computergrafik des Exascale-Computers Aurora, der 2022 an Argonne National Lab geliefert werden soll Viele Länder, allen voran China und die USA, aber auch Japan und die EU, investieren daher massiv in HPC. Weil es so prestigeträchtig ist, gibt es – ähnlich wie seinerzeit bei der Mondlandung – einen regelrechten Wettlauf mit dem Ziel, den allerersten Exascale-Computer in Betrieb zu nehmen. Aktuell schaffen die besten Supercomputer erst 20 bis 50 Prozent eines Exascale-Computers. Der japanische Supercomputer Fugaku bildet aktuell mit 415,53 Petaflops weltweit die Leistungsspitze. China will den Japanern mit dem Tianhe-3 den Rang ablaufen, der das Exaflops-Limit sprengen soll. Ob er das als Erster schafft, ist die große Frage, denn auch Intel spielt eine führende Rolle – als Hauptlieferant für das Aurora-System.[1] Aurora wird einer der ersten US-Exascale-Supercomputer sein, 2021 im Argonne National Lab installiert werden und voraussichtlich spätestens Anfang 2022 mit mindestens 1 Exaflops Leistung ans Netz gehen. Aurora wird mit Next-Gen-Xeon-Prozessoren und Xe-GPUs von Intel arbeiten und soll rund 500 Millionen US-Dollar kosten. Ob Aurora aber der erste Exaflops-Computer der Welt sein wird, bleibt abzuwarten; das Rennen scheint absolut offen – und der Ausgang bleibt spannend. Exorbitante Zunahme der Rechenknoten in Supercomputern
Eine Folge dieser Entwicklung ist die exorbitante Zunahme der Prozessorkerne in Supercomputern – die größeren Systeme verfügen heute über mehr als 100.000 Kerne, Fugaku sogar über mehr als sieben Millionen. Zum Vergleich: 1995 hatten Supercomputer nur 512 CPUs. Die aktuelle Exascale-Challenge besteht konkret darin, den Schritt von aktuell gut 1015 Flops (Petaflops) zum nächsten Meilenstein bei 1018 Flops – also 1 Exaflops – zu schaffen. Folgende Eigenschaften kennzeichnen die künftigen Exascale- Computer: Große Anzahl von Prozessoren mit niedrigem Stromverbrauch und vielen (möglicherweise Millionen) Kernen Numerische Beschleuniger – zum Beispiel GPUs oder FGPAs – mit direktem Zugriff auf denselben Speicher wie die Prozessoren Schnellere, größere und energiesparende Speichermodule mit weiterentwickelten Schnittstellen Neuartige Topologie-Netzwerke mit hoher Bandbreite und niedriger Latenz, die Rechenknoten und Speichermodule verbinden. Auch wenn Mehrzweckprozessoren weiterhin das Rückgrat aller Computing-Infrastrukturen bilden, werden Beschleuniger mehr und mehr zum Mainstream. Der Grund liegt auf der Hand: Grafikverarbeitungseinheiten (GPUs), Field Programmable Gate Arrays (FPGAs) und anwendungsspezifische integrierte Schaltungen (ASICs) bieten für bestimmte Workload-Klassen deutliche Vorteile, gerade auch bei zukunftsträchtigen Anwendungen aus Bereichen wie Künstliche Intelligenz, Analytics oder Big Data. Die Exascale-Challenge – auch ein Software-Problem All diese Entwicklungen machen klar, dass nicht nur die Hardware, sondern auch die Software und insbesondere auch die Anwendungen die eigentliche Exascale-Challenge darstellen. Solche Systeme mit mehr als einer Million CPU-Cores, GPUs und anderen Beschleunigern brauchen Anwendungen, die in parallel ausführbare Teile (Threads / Prozesse) aufgegliedert werden, welche wiederum zeitgleich – also „concurrent“ – ausgeführt werden. Weil jeder Anwendungstyp andere Anforderungen an die Rechenleistung stellt, variiert auch die dafür optimale Rechnerarchitektur. Beispielsweise haben Routenplaner ganz andere Anforderungen an Verarbeitungsgeschwindigkeit, Schnittstellen und Hardware-Merkmale als autonomes Fahren, die Wetterprognose oder eine finanzielle Risikoanalyse. Damit all diese Anwendungen die am besten passenden Hardware-Komponenten in einem Exascale-Computer ohne proprietäre Software- Stacks nutzen können, hat Intel oneAPI[2] entwickelt. Dabei handelt es sich um eine auf Standards basierende Lösung, die gleichzeitig Portabilität und eine hardwarenahe Programmierschnittstelle – also Top-Performance – verspricht. Wie auf den folgenden Seiten beschrieben, nutzt oneAPI die von der Hardware abstrahierende Programmiersprache Data Parallel C++ (kurz DPC++), aber auch OpenMP (Open Multi-Processing) in der Version 5.0. Dies ist ein gemeinschaftlich von verschiedenen Hardware- und Compilerherstellern entwickeltes API für die Shared-Memory-Programmierung in C++, C und Fortran auf Multiprozessor-Computern. Dank OpenMP kann auch vorhandener Code für HPC-Anwendungen auf eine GPU ausgelagert werden, selbst wenn er ursprünglich für CPU-basierte Systeme gedacht war. Exascale-Anwender können also vorhandene HPC-Anwendungen mit oneAPI einfach weiternutzen, aber auch von allem profitieren, was im oneAPI-Ökosystem für KI oder Analytics entwickelt wird. Das ist auch deshalb interessant, weil verteilte Anwendungen immer wichtiger werden. Es ist ja kein Wunder, das der erste „Exascale-Computer“ der Welt keine einzelne Anlage war, sondern ein Rechnerverbund: Das Folding@home-Netz für verteiltes Rechnen.[3] Literatur & Links [1] #Aurora: Supercomputing-Leistung im Exascale-Bereich, https://www.intel.de/content/www/de/de/high-performance-computing/supercomputing/delivering-aurora-exascale-performance-vi deo.html
[2] #Die Dokumentation von oneAPI, https://docs.oneapi.com/versions/latest/index.html [3] #Folding@Home Crushes Exascale Barrier, Now Faster Than Dozens of Supercomputers, http://www.extremetech.com/computing/308332-foldinghome-crushes-exascale-barrier-now-faster-than-dozens- of-supercomputers Michael Steyer ist technischer Berater im Bereich High-Performance-Computing, innerhalb der Architecture, Graphics and Software Group bei Intel. Bildnachweise Intel AI Trendletter Impressum | Kontakt & Anfrage
Sie können auch lesen