Prof. Dr. habil. Sergei Gorlatch
DatTeL: strukturierte Parallelität mit C++ und Templates
Viele wichtige rechenintensive Anwendungen erfordern parallele Architekturen, damit ihre Laufzeit signifikant reduziert werden kann, beispielsweise in der Klimaforschung oder bei der Simulation von Crash-Tests. Während das Angebot an paralleler Hardware stetig wächst,
ist im Bereich der Softwareentwicklung für parallele Systeme ein Stillstand zu beobachten. In der Praxis werden immer noch traditionelle Bibliotheken eingesetzt, die low-level Primitive zur Kommunikation (send/receive) und Synchronisation (lock/unlock) anbieten, obwohl gerade der Gebrauch dieser Primitive in der Literatur oft als Ursache für großen Zeitaufwand und Fehleranfälligkeit identifiziert wird.
Für den Anwender ist die Verfügbarkeit eines Programmiersystems wichtig, das 1) er idealerweise schon kennt, 2) erweitert werden kann und 3) effiziente Programmierung für unterschiedliche Rechnerarchitekturen erlaubt. Mit diesen Vorgaben wurde die neue generische datenparallele C++ Bibliothek DatTeL entwickelt, die eine einfache und
effiziente Programmiermethode für parallele Architekturen ermöglicht [3]. Um die Benutzung der DatTeL für den Anwender so einfach wie möglich zu gestalten, wurden die wesentlichen Programmkonstrukte der sequentiellen STL (Standard Template Library) übernommen, die Teil des C++ Standards ist. Die Idee ist, dass der Anwender ein Programm basierend auf der ihm vertrauten STL schreibt, das vom DatTeL-System automatisch auf unterschiedlichen Architekturen parallel ausgeführt werden kann. Dadurch bleibt dem Anwender die komplexe, low-level Parallelitätsstruktur seiner Anwendung verborgen.
Mehrere anwendungsbezogene Fallstudien (z.B. Barnes-Hut Algorithmus zur Körpersimulation) haben gezeigt, dass die DatTeL zum einen den Programmentwurf für verschiedene parallele Systeme entscheidend vereinfacht und zum anderen effizienten Zielcode erzeugt. Dabei ist die Laufzeit von den parallelen DatTeL Programmen mit handoptimierten parallelen Implementierungen vergleichbar [1].
Drittmittelgeber:
Beteiligte Wissenschaftler:
Veröffentlichungen:
|