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

// Einführung in die Shared-Memory-Programmierung heterogener Systeme

Der Vortrag bietet eine Einführung in den theoretischen Aufbau heterogener Systeme und in die notwendigen technischen Konzepte, um Algorithmen effizient auf diesen Plattformen umzusetzen. Als Anwendungsbeispiel dient ein C++-Programm zur Überwachung von Datenströmen. Das Hauptsystem erhält Daten in Echtzeit (z.B. Sensordaten) und muss diese zum Monitoring aufbereiten und darstellen.

Zur Unterstützung nimmt das Hauptsystem einen Grafikkarten-Coprozessor, welcher die stark parallelisierbaren Aufgabenpakete übernimmt. Die asynchron zueinander laufenden Prozessorsysteme kommunizieren über hardwarenahe APIs und tauschen Daten nach expliziter Synchronisation aus. Es wird eine Architektur vorgestellt, in der das Hauptsystem die Arbeitspakete zwischen sich und dem Coprozessorsystem aufteilt. Dabei werden Kommunikation, Synchronisierung sowie der Trade-off vom Offloading an den Coprozessor erläutert und diskutiert. Es wird dabei Wert auf jeweils existierende optimale Implementierungsmöglichkeiten und orthogonale Vektorisierungs- und Parallelisierungskonzepte gelegt.

Die konkret verwendeten Technologien sind:

* C++ für das Hauptsystem (Standardbibliothek und Intrinsics für Vektorisierung)
* OpenGL zur Kommunikation zwischen Hauptsystem und Coprozessor
* GLSL Compute Shader für den Coprozessor

Vorkenntnisse
Besucher des Vortrages sollten Grundkenntnisse in hardwarebeschleunigtem Rechnen und der systemnahen Programmierung haben. Vorkenntnisse in C++ und Grafik-APIs (z.B. OpenGL oder Vulkan) sind hilfreich.

Lernziele
Besucher werden einen Einblick in die Grundlagen heterogener Systeme und deren Programmierung erhalten. Die Lernziele umfassen Konzeption von Software für diese Systeme und aufkommende Fragestellungen während der Implementierung sowie deren Lösungsansätze. Es wird zusätzlich gezeigt, wie in heterogenen Systemen mit Parallelisierung und Vektorisierung gearbeitet werden kann.


// Willy Scheibel Willy Scheibel

ist wissenschaftlicher Mitarbeiter am Hasso-Plattner-Institut für Digital Engineering im Fachbereich Computergrafische Systeme und forscht und lehrt im Bereich Visualisierung, Echzeit-Computergrafik und Datenprozessierung. Er ist Mitgründer der CG Internals GmbH.


// Stefan Buschmann Stefan Buschmann

ist wissenschaftlicher Mitarbeiter am Hasso-Plattner-Institut für Softwaresystemtechnik im Fachbereich Computergrafische Systeme und forscht im Bereich räumlich-zeitliche Daten und deren Visualisierung. Er ist Mitgründer der CG Internals GmbH.