Der Mythos Exascale und das neue Paradigma der Parallelen Programmierung

Die Seite wird erstellt Linus Schneider
 
WEITER LESEN
Der Mythos Exascale und das neue Paradigma der Parallelen Programmierung
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.
Der Mythos Exascale und das neue Paradigma der Parallelen Programmierung
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
Der Mythos Exascale und das neue Paradigma der Parallelen Programmierung
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
Der Mythos Exascale und das neue Paradigma der Parallelen Programmierung
[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