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 (via Zoom) zu den veröffentlichten Vorlesungsvideos der jeweils vorherigen Woche zur Verfügung stehen.

Termine

Der Start der Vorlesung startet am Montag, den 19. April, um 10:30 Uhr über das Videokonferenzsystem Zoom durchgeführt. Der Link zu der Videokonferenz wird im Moodle-Lernraum veröffentlicht. Bitte registrieren Sie sich daher über RWTHonline für die Veranstaltung (s.u.).

Die Teilnahme an den Zoom-Videokonferenzen ist optional. Wir empfehlen Studierenden zur Vorbereitung die Installation des Zoom-Clients.

Termine für Fragestunden

  • Mo, 10:30 - 12:00 Uhr

Übungen

  • Do, 10:30 - 12:00 Uhr

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