Global Adress Space Programming Interface

GPI revolutioniert die algorithmische Entwicklung für leistungsfähige Software. Es gilt als Schlüssel, um die nächste Generation von Supercomputern zu ermöglichen – Exascale-Rechner, die 1.000mal schneller sind als heutige Großrechner.

GPI – Programmiermodell für zukünftige Supercomputer

Der Bedarf an schnelleren, noch effektiveren und energiesparenden Computerclustern wächst in fast allen Branchen. Unser asynchrones Programmiermodell Global Adress Space Programming Interface (GPI) liefert einen entscheidenden Baustein, um die nächsten Supercomputer zu realisieren.

High Performance Computing ist eine der Schlüsseltechnologien für zahllose Anwendungen, die für uns mittlerweile selbstverständlich sind. Das reicht von der Google-Suche über die Wettervorhersage und Klimasimulation bis hin zur Bio-Informatik. Das Stichwort ist hier Big Data: durch die Menge an Daten wächst der Bedarf an noch schnelleren, noch effektiveren aber auch energiesparenden Computerclustern.

Die Anzahl der Prozessoren pro System ist mittlerweile im Millionenbereich angekommen und wächst weiter stark an. Weitgehend unverändert geblieben ist das bei Supercomputern verwendete Programmiermodell, das Message Passing Interface – MPI. Es sorgt dafür, dass die Mikroprozessoren in den verteilten Systemen kommunizieren können. Mittlerweile stößt es aber an seine Grenzen.

Paradigmenwechsel: asynchrone Kommunikation und universelle Programmierschnittstelle

GPI beruht auf einem komplett neuen Denkansatz: auf einem asynchronen Kommunikationsmodell. Jeder Prozessor kann dabei wahlfrei auf alle Daten direkt zugreifen – egal auf welchem Speicher sie liegen und ohne andere parallel ablaufende Prozesse zu beeinflussen.

GPI wurde nicht als parallele Programmiersprache entwickelt, sondern als parallele Programmierschnittstelle und kann daher universell eingesetzt werden. Der Bedarf für eine solche hochskalierbare, flexible und fehlertolerante Schnittstelle ist groß und wächst, allzumal auch die Anzahl der Prozessoren in den Superrechnern exponentiell ansteigt.

Vorteile von GPI auf einen Blick

  • Einseitige, asynchrone und parallele Kommunikation aller Threads
  • Trennung von Datensynchronisation und Datentransfer
  • Kommunikation mit voller Netzwerkgeschwindigkeit
  • optimale Überlappung von Kommunikation und Berechnung
  • Direkte Kommunikation ohne zusätzliche Kopien
  • fehlertolerant
  • energieeffizient
  • robust und industrieerprobt
  • keine neue Programmiersprache, GPI ist eine Schnittstelle und unterstützt C++, Fortran und C
  • arbeitet mit Pthreads, OpenMP oder mit eigenem Threadpaket über mehrere Recheneinheiten hinweg
  • unterstützt Hybridsysteme mit NVIDIA Grafikprozessoren
  • Verfügbar für Infiniband, Cray Gemini and Aries, Ethernet, Intel Omnipath Architektur (OPA)
  • einfach zu bedienen 
  • Open-Source-Implementierung des GASPI-Standards und für Anwendungsentwickler und Forscher frei verfügbar
    Mehr dazu unter www.gaspi.de 
GPI liefert exzellente Leistung und Skalierbarkeit
© Fraunhofer ITWM

GPI liefert exzellente Leistung und Skalierbarkeit für Applikationen auf Höchstleistungsrechnern der jetzigen und nächsten Generation. Die Grafik zeigt am Beispiel einer Finiten-Differenzen-Anwendung die starke Skalierbarkeit, die aufgrund von GPI auf dem SuperMUC-Cluster des Leibniz-Rechenzentrums (LRZ) erreicht werden kann.

Anwendungsbeispiele

High Performance Computing mit GPI hat sich zu einem universellen Werkzeug in Wissenschaft und Wirtschaft entwickelt und gilt als festes Element des Designprozesses etwa im Automobil- oder Flugzeugbau. Den Ursprung seiner Entwicklung hat das Programmiermodell in der Seismik.

Beispiel Aerodynamik: Einer der Simulationseckpfeiler im europäischen Aerospace-Umfeld, die Software TAU, wurde in einem Projekt mit dem Deutschen Zentrum für Luft- und Raumfahrt DLR auf die GPI-Plattform übertragen. Dadurch konnten wir die parallele Effizienz erheblich steigern.

HD-Video: Programmiermodell für zukünftige Supercomputer

Das Programmiermodell GPI wurde mit dem Fraunhofer-Forschungspreis ausgezeichnet. Dr. Carsten Lojewski, Dr. Christian Simmendinger, Rui Machado (v.l.n.r.) entwickelten ein Programmiermodell, das Hochleistungsrechner maximal effizient nutzt.

Beispielprojekte

Projekt INTERWinE

Exascale Modellierung und Implementierung

Das Projekt INTERWinE 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.

 

Wir bringen 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.

Projekt ExaNoDe

Exascale Computing

Gemeinsam mit 13 weiteren europäischen Partnern sind wir am Projekt ExaNoDe (European Exascale Processor Memory Node Design) beteiligt. Dieses Projekt prüft, entwickelt und steuert die Grundelemente für hocheffiziente, integrierte Mehrkanal-Hochleistungs-Computerteile, die auf Exascale Computing ausgerichtet sind.

 

Unsere Aufgabe ist es dabei die Fraunhofer GASPI/GPI 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.

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.