Parallele Programmierung

Das Hochleistungsrechnen bietet für viele wissenschaftliche und ingenieurtechnische Disziplinen großes Potential, das nur ausgeschöpft werden kann, wenn die Kenntnisse aus den Anwendungsbereichen mit geeigneten Algorithmen sowie passenden Parallelisieruns- und Implementierungs-Methoden kombiniert werden.

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

 

Constraint-Solving

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

 

SafeClouds

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

BMBF-Projekt

HighPerMeshes

Die Lösung partieller Differentialgleichungen mit Computerhilfe wird in vielen Bereichen der Wissenschaft eingesetzt, um das Verhalten komplexer Systeme vorherzusagen. Ein Beispiel ist die Vorhersage von Verschleißerscheinungen im menschlichen Kniegelenk, wo Knochen, Muskeln und Bänder miteinander interagieren. Beim Projekt HighPerMeshes, das vom Paderborn Center for Parallel Computing der Uni Paderborn geleitet wird, entwickeln wir gemeinsam Simulationsmethoden und die entsprechende Software, um solche Prozesse zu untersuchen. Wir bringen unsere Expertise in der Entwicklung und Anwendung neuer Softwaretools wie GPI-2 ein.

 

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.

Projekt EuroEXA

Template für zukünftiges Exascale-System

Im Projekt EuroEXA arbeiten wir gemeinsam mit 15 Partner an einem Template für ein zukünftiges Exascale-System, indem wir einen Prototyp auf Petascale-Ebene mit bahnbrechenden Eigenschaften mitentwickeln und implementieren. Um dieses Ziel zu erreichen, verfolgt das Projekt einen Ansatz, der sowohl technologieübergreifend als auch in den Bereichen Anwendungs-/Systemsoftware innovativ ist.

Unsere Expertinnen und Experten übertragen dazu die parallele Programmier-API GPI und das parallele Dateisystem BeeGFS auf diese neuartige Rechenarchitektur und statten FPGAs mit der seismischen Bildgebungsanwendung RTM aus.

 

European Processor Initiative

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

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.

INTERWinE – Exascale Modellierung und Implementierung

Das Projekt INTERWinE befasste sich mit dem Problem der Modellierung von Modelldesign und Implementierung für die Exascale. Die ersten Exascale-Computer werden sehr hochparallele Systeme sein, die aus einer Hierarchie der architektonischen Ebenen bestehen.

Wir brachten das Programmiermodell GASPI und deren Implementierung GPI in das Projekt ein und evaluierten die Interoperabilitätsanforderungen mit einer Reihe von Anwendungen wie dem Computational Fluid Dynamics Code TAU des DLR (Deutsche Luft- und Raumfahrt) zur aerodynamischen Simulation. Im Rahmen des Projektes ist an der Interoperabilität von Programmiermodellen gearbeitet worden. Insbesondere MPI und GASPI/GPI arbeiten nun besser zusammen und Legacy Codes können nun auch GASPI/GPI nutzen. Es wurde auch ein erster Prototyp zur Zusammenarbeit zwischen GASPI/GPI und dem task-based runtime system OmpSs des Barcelona Supercomputing Centers entwickelt worden. Das Projekt wurde im November 2018 abgeschlossen.

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.