Vorlesung Konzepte und Modelle der parallelen und datenzentrischen Programmierung
Organisation
Die Vorlesung wird im "Flipped-Classroom"-Konzept durchgeführt. Das bedeutet, dass die Vorlesung in Unterabschnitte der Länge 20 bis 30 Minuten unterteilt und in Form von Videos im Moodle-Lernraum bereitgestellt wird. Wir werden außerdem zusätzliches Material, Quizzes usw. bereitstellen. Die Vorlesungstermine werden als Fragestunden (in Präsenz, bei Bedarf hybrid via Zoom) zu den veröffentlichten Vorlesungsvideos der jeweils vorherigen Woche zur Verfügung stehen.
Termine
Ein Einführungstermin findet am Dienstag, 4. April, um 12:30 in C.A.R.L. H05 (1385|105) statt. Details werden im Moodle-Lernraum veröffentlicht. Bitte registrieren Sie sich daher über RWTHonline für die Veranstaltung (s.u.).
Desweiteren wird eine Vorlesungseinheit anstatt per Videos live im Hörsaal vorgestellt. Diese Live-Vorlesungen finden am Dienstag, 20. Juli, und Dienstag, 27. Juli, um 12:30 in C.A.R.L. H05 (1385|105) statt.
Termine für Fragestunden
- Dienstag, 12:30 - 14:00 in C.A.R.L. H05 (1385|105)
Übungen
- Donnerstag, 14:30 - 16:00 in C.A.R.L. H05 (1385|105)
Registrierung
Die Registrierung für die Veranstaltung erfolgt über RWTHonline.
Materialien
Materialien werden im Moodle-Lernraum veröffentlicht. Zugriff erhalten Sie durch eine Registrierung für die Vorlesung in RWTHonline.
Beschreibung
Die klassische Simulation wird immer häufiger durch die Modellbildung basierend auf (großen) Datenmengen ergänzt. Methoden und Werkzeuge der parallelen Programmierung ermöglichen es, rechenintensive und komplexe Modelle aufzustellen, auszuwerten oder anzupassen. In der parallelen Verarbeitung großer Datenmengen bieten neue Programmiermodelle zusätzliche Funktionalität oder Leistungsgewinne, indem gegenüber dem Fokus auf die Berechnung ein Datenzentrischer Ansatz gewählt wird. In dieser Vorlesung werden entsprechende Programmiermodelle, ausgewählte Algorithmen und Werkzeuge vorgestellt, die im Hochleistungsrechnen und den Datenwissenschaften Anwendung finden.
Lernziele der Vorlesung sind die Einordnung von parallelen Systemen im Einsatz im Hochleistungsrechnen sowie zur Verarbeitung großer Datenmengen (Big Data) sowie das Verständnis von Optimierungs- und Parallelisierungskonzepten zur Nutzung dieser Systeme. Dazu gehört das Kennen und Verstehen der Implementierung der verschiedenen Programmiermodelle, ausgewählter paralleler Algorithmen sowie dazugehörige Komplexitätseigenschaften und Skalierbarkeitsgrenzen.
Inhalt
- Architektur von Parallelrechnern (Clustern) zum Einsatz im Hochleistungsrechnen sowie in der Verarbeitung großer Datenmengen (Big Data)
- Parallele Programmiermodelle: Instruktionsebene, Beschleuniger, Shared Memory, Distributed Memory, MapReduce-Konzept
- Parallele Verarbeitung von I/O
- Synchronisationskonzepte zu den parallelen Programmiermodellen
- Realisation häufig verwendeter (abstrakter) Datentypen mit den parallelen Programmiermodellen
- Ausgewählte parallele Algorithmen verschiedener Anwendungsbereiche
- Modellierung von Parallelität (Speedup, Effizienz, Skalierbarkeitsschranken) und Leistung
- Weitere ausgewählte Themen