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.
 

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.

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.
 

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

INTERTWinE – Exascale Modellierung und Implementierung

Dieses Projekt befasst 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. Um solche Systeme effektiv und portabel zu programmieren, müssen Programmier-APIs mit effizienten und robusten Implementierungen in der entsprechenden Zeitskala fertig sein.

Eine einzige API, die alle architektonischen Ebenen adressiert, existiert noch nicht und scheint sehr unwahrscheinlich, dass sie bald genug auftaucht. Wir müssen daher erwarten, dass die Kombination von verschiedenen APIs auf verschiedenen Systemebenen die kurze praktische Lösung kurz- bis mittelfristig ist. Obwohl es in den einzelnen Programmiermodellen und deren Implementierungen Raum für Verbesserungen gibt, liegen die großen Herausforderungen in der Interoperabilität zwischen APIs. Es ist diese Interoperabilität sowohl auf der Spezifikationsebene als auch auf der Implementierungsebene, die dieses Projekt ansprechen und den Stand der Technik weiterführen will.

Fraunhofer ITWM bringt das Programmiermodell GASPI und deren Implementierung GPI in das Projekt ein und evaluiert die Interoperabilitätsanforderungen mit einer Reihe von Anwendungen wie dem Computational Fluid Dynamics Code TAU des DLR (Deutsche Luft- und Raumfahrt) zur aerodynamischen Simulation.

Mehr Informationen zum Projekt auf der INTERTWinE Website

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, daß die  RTM-Applikation bis zu 60k-Cores am SuperMUC Supercomputer nahezu linear skaliert.

Mehr Informationen zum Projekt auf der EPiGRAM Website

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.

Mehr Informationen zum Projekt auf der EXA2CT Website

SafeClouds – modernste Technologien für die Flugsicherheit

SafeClouds ist ein Forschungsprojekt, das von dem gesamten Spektrum von Luftfahrt-Stakeholdern betrieben wird, die modernste Technologien für die Flugsicherheit in einer kostengünstigen Weise entwickeln. SafeClouds schlägt einen datengesteuerten Ansatz vor, um ein tieferes Verständnis der Dynamik des Systems zu erreichen, bei der Risiken in einer kontinuierlichen Bemühung, die bereits hervorragenden europäischen Flugsicherheitsakten zu verbessern, proaktiv aktiv identifiziert und gemildert werden.

SafeClouds entwickelt einen innovativen Luftfahrt-Sicherheitsdatenanalyse-Ansatz. Derzeit besitzt jeder Stakeholder verschiedene isolierte Datensätze und Data-Sharing-Paradigmen sind selten. Allerdings ist die Kombination dieser Datensätze entscheidend für die Entdeckung unbekannter Sicherheitsrisiken und für das Verständnis und die Definition eines leistungsorientierten Systemsicherheitskonzepts. Das neue datengesteuerte Paradigma, das in der Lage ist, Sicherheitsintelligenz in einer schnellen, verbundenen und kostengünstigen Weise zu extrahieren, erfordert die Zusammenarbeit von Luftfahrt- und IT-Entitäten, die ihre Rohdatensätze, Werkzeuge, Techniken und Informationen teilen.

Wir stellen die IT-Infrastruktur für dieses Projekt zur Verfügung. Unseres Laufzeitumgebung GPI-Space wird im Rahmen des Projektes eingesetzt werden.

Mehr Informationen zum Projekt auf der SafeClouds Website

ExaNoDe - Exascale Computing im Rahmen eines EU-Projektes

Aufbau des ExaNoDe Projektes
© Foto ExaNoDe

Der Aufbau des ExaNoDe Projektes

Wir sind einer von 13 Partnern, die aus sechs europäischen Ländern am Projekt ExaNoDe (European Exascale Processor Memory Node Design) beteiligt sind. Dieses Projekt prüft, entwickelt und steuert (unter Verwendung einer Hardwarebasierten Schnittstelle) die Grundelemente für hocheffiziente, integrierte Mehrkanal-Hochleistungs-Computerteile, die auf Exascale Computing ausgerichtet sind. Es baut auf einer europäischen Initiative für skalierbare Computer auf, die eine energieeffiziente Umgebung und eine fortschrittliche Nanotechnologie nutzen.

Unsere Aufgabe ist es dabei die Fraunhofer GASPI/GPI (Global Address Space) Programmierschnittstelle zu entwickeln, 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.

In der ExaNoDe-Hardware wird GASPI/GPI basierend auf dem RDMA, welches von der Hardware und dem Interconnect implementiert wird, bereitgestellt. Die ExaNoDe UNIMEM-Architektur erlaubt es dem Nutzer, einen einzelnen Prozess auf einer großen Anzahl von Sockets laufen zu lassen. Der PGAS-Ansatz von GASPI/GPI passt sehr gut in eine derartige Umgebung. Im Projekt werden wir stark mit den Hardwareentwicklern zusammenarbeiten, um die Funktionalität zu gewährleisten und auf kurze Ladezeiten achten.

Mehr Informationen zum Projekt auf der ExaNoDe Website