Softwarekonferenz für parallele
und hochperformante Programmierung
Heidelberg, Print Media Academy, 19.-21.Februar, 2019

// Massiver Parallelismus mit C++

Eine der spannendsten Neuerungen der Programmiersprache C++ ist die wachsende Unterstützung von Parallelismus und Nebenläufigkeit. Mit dem C++11-Standard wurden grundlegende Konzepte wie std::thread und std::async eingeführt und seit C++17 sind parallele Algorithmen Teil der Standardbibliothek. Im Hinblick auf einen Paradigmenwechsel hin zu Many-Core-Systemen ist allerdings noch viel Arbeit nötig. Dieser Vortrag erläutert die aktuellen Einschränkungen und Kosten, die mit derzeitigen Implementierungen von std::thread und darauf basierenden Basisblöcken entstehen und erarbeitet eine mögliche Lösung.

Nach einer kurzen Einführung in die Thematik wird eine Lösung anhand leichtgewichtiger Threads vorgestellt. Der Vortrag erläutert den Lösungsansatz sowie verschiedene Design-Entscheidungen, aber auch mögliche Optimierungen für verschiedene Zwecke, um eine skalierbare Lösung für fein granuläre Parallelität zu liefern, die über den traditionellen Daten-Parallelismus hinaus geht. Dies wird in Zusammenhang mit dem HPX-Laufzeitsystem stehen, in das die vorgestellte Technik eingebettet wird, um von Embedded-Systemen über Manycore-Systeme bis auf große verteilte Systeme zu skalieren.

Vorkenntnisse
* Die Zuhörer sollten über Kenntnisse in C++ verfügen.

Lernziele
Vermittlung,

* dass es immer mehr Parallelität geben wird,
* dass man mit "normalen" Threads nicht weiter kommt,
* es mehr gibt als POSIX/Windows Threads,
* wie man hochparallele Systeme mit modernem C++ programmieren kann.


// Thomas Heller

Sein Hauptinteresse liegt in der effizienten Programmierung großer, massiv paralleler Systeme. Als Werkzeug seiner Wahl wird die Programmiersprache C++ verwendet. Er engagiert sich als einer der Hauptentwickler des HPX Parallel Runtime System, die Grenzen von C++ für die parallele Programmierung zu erweitern. Er ist ein führendes Mitglied der STE||AR-Gruppe.