Programmierung von parallelen, nebenläufigen und asynchronen Systemen.
Die Studierenden können:
die Konzepte der Nebenläufigkeit darstellen und in Programmen anwenden
die Korrektheitskriterien der Nebenläufigkeit erläutern, typische Gefahren erkennen und vermeiden
Programme mittels Parallelisierung auf Multi-Cores, GPUs und Cluster beschleunigen
Programme mittels Asynchronität nicht-blockierend entwerfen
Verschiedene Programmiermodelle für Nebenläufigkeit erklären
Paralleler oder vorgängiger Besuch von Betriebssysteme 2 vorteilhaft.
Bestehen der Testatbedingungen; d.h. mehrere erfolgreich bestandene Testat-Übungsserien.
Grundlagen des Multi-Threading und der Synchronisation:
Thread Pools für effiziente Parallelisierung und Asynchronität:
Ausgewählte Themen der Nebenläufigkeit:
Massive Parallelisierung:
Fortgeschrittene Programmiermodelle für die Nebenläufigkeit:
Verwendete Technologien im Modul: Java, .NET C#, C/C++ (für GPU, MPI u.a.)
Durchführung gemäss Stundenplan