GaspiCxx – Global Adress Space Progamming Interface für C++

Der produktive Ansatz zur effizienten parallelen Programmierung

Der Bedarf an Supercomputern wächst in fast allen Branchen. Daher setzen wir, beim Fraunhofer ITWM, auf asynchrone Programmiermodelle – also das skalierbare parallele Programmieren. Ein Programm arbeitet dabei effizient auf einem System mit vielen Prozessoren oder Rechenkernen und profitiert dabei von der zusätzlichen Rechenleistung. Auch unser Tool GaspiCxx zählt hierzu und unterstützt Programme dabei, Aufgaben aufzuteilen und gleichzeitig auf mehreren Teilen eines Computers auszuführen, um schneller und effizienter zu arbeiten. 

GaspiCxx für mehr Produktivität

GaspiCxx ist eine Programmierschnittstelle für die Programmiersprache C++, die für die Kommunikationsbibliothek GPI-2 entwickelt wurde. Sie wurde entwickelt, um folgende Ziele zu erreichen:

  • Skalierbarkeit
  • Leistung
  • Produktivität

Sie ermöglicht demnach eine abstrakte Nutzung der ursprünglich C-basierten Kommunikationsschnittstelle, ohne dabei die Leistung zu beeinträchtigen.

Das dynamische Verwalten von Speicher und Synchronisationsmechanismen für Segmente folgt dem Konzept des Allokators. Dadurch können einseitige und passive Kommunikationen darauf aufbauen. Allokationen im globalen Adressraum und die Synchronisationsmechanismen werden einfach auf der Quell- und Zielseite verbunden, um effizient miteinander zu kommunizieren.

Zusätzlich bietet GaspiCxx die Python-Erweiterung PyGPI, die die Punkt-zu-Punkt- sowie die Kollektiv-Prinzipien als einfach zu bedienende, intuitive Python-Bibliothek bereitstellt.

Unser Softwaretool GaspiCxx reduziert den Aufwand beim Entwickeln Ihrer Kommunikationsinfrastruktur erheblich, wenn die Anwendung auf GPI-2 basiert.

Vorteile von GaspiCxx:

■ Hohe Produktivität

■ Volle Leistungsfähigkeit

■ Einfache Bedienung

■ Transparente Verwaltung der GPI-2-Kommunikationsressourcen

■ Exklusive Ressourcennutzung

Technische Daten

Das Design der Schnittstelle macht das explizite Verwalten der Kommunikationsressourcen, die normalerweise von der nativen C-Schnittstelle benötigt werden, für die Anwendung völlig transparent. Stattdessen implementiert GaspiCxx die folgenden automatisch verwalteten Ressourcen:

  • Gruppen
  • Segmente
  • Warteschlangen
  • Punkt-zu-Punkt einseitige Kommunikationsprinzipien
    • Qullpuffer/Zielpuffer
  • Nicht-blockierende kollektive Prinzipien
    • Allreduce
    • Allgatherv
    • Broadcast
  • Blockierende Kollektive
    • Barriere

Kontaktieren Sie uns und probieren Sie GaspiCxx aus!

 

CFD-Löser FLUCS: Parallele Effizienz
© Fraunhofer ITWM
CFD-Löser FLUCS: Parallele Effizienz