Skalierbare parallele Programmierung

Die Gruppe zum Schwerpunkt beschäftigt sich mit der Entwicklung von Methoden und Werkzeugen zur optimalen Ausnutzung aller verfügbaren Ressourcen. Wir beginnen beim einzelnen Core und wir enden nicht eher als beim kompletten Höchstleistungsrechner.
 

Tuning

Wir optimieren Software ganzheitlich. Unser Anspruch ist das umfassende Verständnis der Methoden und Algorithmen und deren Umsetzung unter genauer Kenntnis von Rechnerarchitektur und Möglichkeiten der Werkzeuge.
 

GPI

GPI ist die Kommunikationsbibliothek der Wahl, wenn es um hoch skalierende Anwendungen geht. GPI erlaubt echt asynchrone und parallele Kommunikation aller Threads und erzielt optimale Überlappung von Kommunikation und Berechnung. Schnelle und teilweise kostenfreie Benachrichtigungen entfernter Komponenten und genau definierte Systemzustände im Fehlerfall machen GPI zur weltweit führenden Lösung.

 

Numerische Löser

GaspiLS ist eine numerische Löserbibliothek die vollständig auf den Konzepten des GPI Programmiermodells aufsetzt und damit auf optimale Skalierbarkeit getrimmt ist.

GaspiCxx

GaspiCxx ermöglicht eine schnelle und einfache Entwicklung neuer Anwendungen und/oder die Portierung bestehender Anwendungen auf GPI-2. Mit GaspiCxx konnte beispielsweise ein Shared-Memory paralleler TD-DG Löser für Maxwells Gleichungen innerhalb eines Nachmittags zu einer skalierbaren Distributed-Memory Implementierung ausgebaut werden.

 

GPI-Space

GPI-Space abstrahiert die Komplexität großer Maschinen ohne die Effizienz in Frage zu stellen. Basierend auf einem generischen fehlertoleranten und skalierbaren Laufzeitsystem für dynamische Umgebungen, einer Petri-Netz basierten Workflow Engine und skalierbarem virtuellem Speicher erlaubt GPI-Space die Entwicklung spezifischer Entwicklungs- und Ausführungsumgebungen.

Beispielprojekte

 

Memory Centric Storage (MCS)

Im Projekt entwickeln wir zentrale Komponenten einer Toolbox, die unterschiedliche Speicherarten vereint und Rechenprozesse direkt zu den Daten bringt.

 

Constraint-Solving

Ein Teil des Softwareportfolios von SAP ist der Variantenkonfigurator. Im Projekt entwickeln wir wesentliche Teile der zugrundeliegenden Bibliothek.

 

European Processor Initiative

In der European Processor Initative (EPI) wird ein neuer leistungsfähiger Mikroprozessor entwickelt, welcher unter anderem in Supercomputern eingesetzt wird.

Vergangene Projekte

 

SafeClouds

Weitere Informationen zum EU-Projekt SafeClouds auf unserer Projektseite »Verteilte Infrastruktur zur Datenanalyse in der Luftfahrt«.

 

Projekt EPEEC

Parallele Programmierumgebung

Das europäische Projekt EPEEC steht für die Entwicklung und den Einsatz einer produktionsreifen parallelen Programmierumgebung. Das Ziel sind zukünftige Exascale-Supercomputer zu verwaltbaren Plattformen für Anwendungsentwickler in verschiedenen Bereichen zu entwickeln.

 

Projekt EPiGRAM-HS

Heterogenes Supercomputing

Das für drei Jahre geförderten EU-Projekt »Exascale Programming Models for Heterogeneous Systems« erweitert die Programmierbarkeit großer skalierbarer heterogener Systeme mit GPUs, FPGAs, HBM und NVM, entwickelt neue Konzepte sowie Funktionen und baut diese in die HPC-Programmiersysteme für skalierbare Supercomputer ein.

Abgeschlossene Projekte

ExaNoDe – Exascale Computing

Gemeinsam mit 13 weiteren europäischen Partnern waren wir am Projekt ExaNoDe (European Exascale Processor Memory Node Design) beteiligt, welches im Juni 2019 abgeschlossen wurde. Dieses Projekt prüfte, entwickelte und steuerte einen Prototypen für einen effizienten, hochskalierbaren Rechenknoten, der auf Exascale Computing ausgerichtet ist.

Unsere Aufgabe dabei war es, die Fraunhofer GASPI/GPI Programmierschnittstelle zu erweitern, die eine Open-Source Kommunikationsbibliothek zwischen Computerknoten darstellt. Die API wurde so ausgearbeitet, dass sie eine Vielzahl von möglichen Speichergrößen aufnehmen kann. GASPI /GPI stellt konfigurierbare Speichersegmente zur Verfügung, die die Hardwarekonfiguration abbilden und sie für Anwendungen bereitstellen.

EXA2CT – Schaffung von Exascale-Codes

Das 2016 abgeschlossene EXA2CT-Projekt vereinte Experten an der Spitze der Entwicklung von Lösern, verwandten algorithmischen Techniken und HPC-Softwarearchitekten für Programmiermodelle und Kommunikation.

Im Rahmen des Projektes wurden modulare Open-Source-Proto-Anwendungen produziert, die die im Projekt entwickelten Algorithmen und Programmierungstechniken demonstrieren, um die Schaffung von echten Exascale-Codes zu unterstützen. Technologien, die in EXA2CT entwickelt wurden, sind beispielsweise fortgeschrittene Bibliotheken wie ExaShark und GASPI / GPI, die dazu beitragen, massiv parallele Maschinen zu programmieren, um Algorithmen zu verbessern, die durch eine bessere überlappende Kommunikation und Berechnung und durch Erhöhung der arithmetischen Intensität verbessert werden. All dies wurde auf branchenrelevanten Prototypen verifiziert.

Tom van der Aa (ExaScience Lifelab am imec in Belgien) erklärt, dass im Projekt gezeigt werden konnte, dass das Programmier-API GPI-2 von Fraunhofer ITWM das MPI übertrifft.

EPiGRAM – Programmiermodelle für Exascale Systeme

Das 2016 abgeschlossene EPiGRAM Projekt beschäftigte sich mit Programmiermodellen für Exascale Systeme. Der erste Exascale Rechner wird wahrscheinlich in den nächsten zehn Jahren gebaut werden. Während sich die genauen Systemarchitekturen noch weiterentwickeln, kann man davon ausgehen, dass sie weitgehend auf multicore CPUs mit hierarchischem Speicher basieren, die von Beschleunigern unterstützt werden.

Programmiermodelle sind erforderlich, um Anwendungen auf diesen Plattformen effizient ablaufen zu lassen. Das Message Passing Interface (MPI) hat sich als De-facto-Standard für die parallele Programmierung auf aktuellen Petascale-Maschinen erwiesen. Partitionierte Global Address Space (PGAS) Sprachen und Bibliotheken werden zunehmend als Alternativen oder Ergänzungen zum MPI betrachtet. Diese Modelle werden auch in Exascale-Systemen eine wichtige Rolle spielen. Im EPiGRAM Projekt haben wir einige der Beschränkungen von MPI- und PGAS-Programmiermodellen studiert.

Das GASPI-Programmiermodell mit seiner GPI-Implementierung, die von Fraunhofer ITWM entwickelt und gepflegt wird, ist der EPiGRAM PGAS Vertreter. Im Rahmen von EPiGRAM haben wir Lücken geschlossen, die für Exascale Rechner entscheidend sind, und GASPI und GPI-2 kompletter und robuster gemacht. Innerhalb des EPiGRAM wurde gezeigt, dass die RTM-Applikation bis zu 60k-Cores am SuperMUC Supercomputer nahezu linear skaliert.