Software für das Höchstleistungsrechnen

Nach dem Mooreschen Gesetz verdoppelt sich die Rechenleistung von Computern etwa alle 18 Monate. So bewegen sich die schnellsten Rechner mittlerweile im PetaFLOP-Bereich – sie können mehr als ein Billiarde Additionen oder Multiplikationen pro Sekunde durchführen. Das Ziel für die nächsten Jahre: bis zu 1000 Mal schnellere ExaFLOP-Rechner.

Höchstleistungsrechner führen ihre Aufgaben in hohem Maße parallel aus, indem sie die Arbeitspakete auf viele verschiedene Rechenkerne zur gleichzeitigen Bearbeitung verteilen. Daher muss die Software an die parallele Hardware-Architektur angepasst werden. Mit wachsendem Parallelitätsgrad der Hardware einerseits und zunehmender Komplexität von Simulationssoftware andererseits wird der Aufwand für die kontinuierliche Anpassung immer unüberschaubarer.

Heute ist klar: Bestimmte früher die Hardware die Fortentwicklung die Schnelligkeit der Rechner, ist es heute die Software. Der Schritt zum Exascale-Bereich kann nur erreicht werden, wenn die Software mit der extremen Parallelität der Hardware mithalten kann – und hier müssen in vielerlei Hinsicht die bisherigen Vorgehensweisen grundlegend überdacht werden.

Die Deutsche Forschungsgemeinschaft (DFG) hat daher das Schwerpunktprogramm ‘Software for Exascale Computing’ (Sppexa) gestartet. Der Informatikprofessor Hans-Joachim Bungartz vom Lehrstuhl für Wissenschaftliches Rechnen der TU München (TUM) hat das Projekt vorangetrieben und ist jetzt einer der Koordinatoren. Sppexa ist auf sechs Jahre ausgerichtet und hat einen Budgetumfang von 24 Millionen Euro.

In den nächsten Jahren sollen in Sppexa neue Konzepte für Software im Bereich High Performance Computing erarbeitet werden. Am Ende könnten nach Angaben der TUM “völlig neue Vorgehensweisen in der Softwareentwicklung für Höchstleistungsrechner” stehen. Was heute nur im Höchstleistungsrechnen wesentlich ist, könnte auch den Computernutzern zu Hause hilfreich sein. Hier erwarte man ebenfalls eine verstärkte Parallelisierung der Arbeitspakete, um Rechner mit mehreren Prozessorkernen effizient auszulasten.