Der Vortrag präsentiert eine neue Herangehensweise für die Programmierung hochparalleler Anwendungen in C++. Die DASH-Template-Bibliothek bietet die Möglichkeit zur bequemen Parallelisierung in C++, ohne den C++-Programmierstil aufzugeben und mit einem ausdrücklichen Schwerpunkt auf Performance und Lokalität. Als Grundidee bietet die DASH-Bibliothek verteilte Container-Klassen und darauf anwendbare Template-Algorithmen, sehr ähnlich zu den Gegenstücken aus der C++ STL. Diese werden mit den Mitteln der C++ 11/14-Standards realisiert und verwenden das PGAS-Modell (Partitioned Global Address Space)zum direkten Zugriff auf entfernte Speicherbereiche.
Vorkenntnisse
Der Vortrag richtet sich an C++-Programmierer. Ein grundlegendes Verständnis der parallelen Programmierung ist hilfreich, aber keine Voraussetzung zum Verständnis.
Lernziele
Der Vortrag gibt eine Einführung in DASH, einen neuen Ansatz zur parallelen Programmierung mit C++, der eine wesentliche Vereinfachung gegenüber anderen Parallelisierungsmodellen für Parallelrechner mit verteiltem Speicher bietet. Er nutzt eine höhere Abstraktion, erfordert weniger Code-Zeilen und orientiert sich am "üblichen" C++-Programmierstil. Im Vortrag werden unter anderem vorgestellt:
* die DASH-Container-Klassen mit globalen und lokalen Iteratoren
* das Konzept zum direkten Zugriff auf entfernte Daten und Datenverteilungsmuster
* die DASH-Template-Algorithmen
* lokale und globale Sichten auf Teile der verteilten Container
* ausgewählte Code- und Performance-Bespiele
Die Autoren sind außerdem an Rückmeldungen zum Konzept und zur Umsetzung der DASH-Template-Bibliothek interessiert, insbesondere zur C++-Integration und zur Parallelisierung.
// Dr. Andreas Knüpfer
ist Stellvertretender Direktor am Zentrum für Informationsdienste und Hochleistungsrechnen (ZIH) der TU Dresden. Seine langjährigen Forschungsgebiete sind parallele Programmiermodelle sowie Softwarewerkzeuge für die parallele Performance-Analyse. Neben vielen wissenschaftlichen Vorträgen und Veröffentlichungen hat er auch eine Vielzahl von Tutorials für Programmierer gehalten.