Vorlesung: Architektur und Programmierung

von Parallelrechnern

Die effiziente Programmierung von Parallelrechnern erfordert ein gutes Verständnis der zugrunde liegenden Systemarchitektur. Es werden Konzepte massiv-paralleler Systeme mit verteiltem und gemeinsamem Hauptspeicher detailliert vorgestellt und Methoden der effizienten Programmierung präsentiert und analysiert. Die Lehrinhalte werden in den Übungen durch praktische Implementation von Algorithmen auf aktuellen Systemen vertieft. Dabei kommen verschiedene Programmiersprachen mit parallelen Kommunikationsbibliotheken zum Einsatz (z. B. OpenCL, OpenMP, MPI).

Übungen
Die Studierenden implementieren ausgewählte Algorithmen auf heterogenen Parallelrechnern und Manycore-Systemen (z. B. Intel Xeon Phi). Lernziel sind vertiefte Kenntnisse zu modernen Parallelrechnern und deren architekturbewusster Parallelprogrammierung.

Raum RUD26, 1'307 (Erwin Schrödinger-Zentrum)
VL Mittwoch, 13-15 Uhr
UE Mittwoch, 15-17 Uhr

Material (Passwort geschützt)

18.10.2017   Organisatorisches (.pdf)
18.10.2017   Einführung (.pdf)
25.10.2017   Prozessorarchitektur (.pdf)
01.11.2017   Befehlsausführung
08.11.2017   Befehlsausführung (.pdf)
08.11.2017   Unterbrechungen
15.11.2017   Unterbrechungen (.pdf)
15.11.2017   Threadprogrammierung (.pdf)
22.11.2017   Dynamische Ablaufsteuerung (.pdf)
29.11.2017   Speicherhierarchie
06.12.2017   Speicherhierarchie (.pdf)
    Cache-Kohärenz
13.12.2017   Cache-Kohärenz (.pdf)
20.12.2017   Cache-Directories (.pdf)
10.01.2018   Manycore Programmierung (.pdf)
17.01.2018   Vektorisierung (.pdf)

Übungen

01.11.2017   Pipelining (.pdf)
15.11.2017   OpenMP Threadprogrammierung (.pdf)
22.11.2017   Threads (.pdf)
06.12.2017   Speicherarchitekturen (.pdf)
13.12.2017   Cache-Architekturen (.pdf)
10.01.2018   Manycore Programmierung (.pdf)
    Hinweise (.pdf)
17.01.2018   SIMD (.pdf)
    Erwähntes Material kommt noch…