Vorlesung Konzepte und Modelle der parallelen und datenzentrischen Programmierung

 

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

Die Liste der aktuellen Lehrveranstaltungen finden Sie unter Teaching – Chair for Computer Science 12.