Softwarekonferenz für parallele, nebenläufige
und asynchrone Programmierung und HPC
Heidelberg, Print Media Academy, 6.-8. März 2018

// Message Passing mit modernem C++

Message Passing Interface (MPI) bildet heute die Basis für HPC-Code. Dazu definiert der aktuelle Standard 3.1 Schnittstellen zu C und Fortran. Die C- und Fortran-Schnittstellen sind gerade für Anfänger schwer zu benutzen, die C++-Schnittstelle bot keinen echten Vorteil. Insbesondere lange Parameterlisten und fehlende Typsicherheit erschweren die Benutzung von MPI.

C++11/14 bietet Sprachfeatures, die es erlauben, kompaktere und weniger fehlerträchtige Message-Passing-Programme zu schreiben. Dies werde ich am Beispiel der von mir entwickelten Message Passing Library (https://github.com/rabauke/mpl) illustrieren. Diese Bibliothek basiert auf MPI und bildet eine leichtgewichtige, typsichere Schicht zwischen MPI und Anwendungscode.

Vorkenntnisse
Grundkenntnisse in C++, C und MPI

Lernziele
Am Ende des Vortrages sollten die Zuhörer

* verstanden haben, welche Eigenschaften der C/Fortran-Programmierschnittstelle eine effiziente Softwareentwicklung behindern.
* typische Fehlerquellen bei der Verwendung der C/Fortran-Programmierschnittstelle kennen.
* verstanden haben, wie sich diese Fehlerquellen durch die Programmierung in C++11/14 umgehen lassen.


// Heiko Bauke Heiko Bauke

arbeitet momentan am MPI für Kernphysik in Heidelberg, wo er eine kleine Gruppe "Numerical relativistic quantum dynamics" leitet, und ist Privatdozent an der Uni Heidelberg. Er beschäftigt sich seit ca. 15 Jahren mit HPC-Themen, war 2001 am Aufbau eines der ersten Linux-Cluster Deutschlands beteiligt und hat im Springer-Verlag das Buch "Cluster Computing" veröffentlicht.