Parallele Systeme

Dozenten:

PD Dr.-Ing. F. Hannig, Prof. Dr.-Ing. J. Teich

Modulbeschreibung:

Parallele Systeme (VU) und
Parallele Systeme mit erweiterter Übung (VEU)

Umfang/Stunden:

V2 + Ü2 (zusammen 5 ECTS), mit erweiterter Übung (7,5 ECTS)

Ort und Zeit der Vorlesung:

Dienstag, 8:30 – 10:00 Uhr, Raum H10

Die erste Vorlesung findet am 16.04.2024 statt.

Ort und Zeit der Übungen:

English Exercise: Thursday, 14:15 – 15:45, Room 01.255-128 (Stefan Groth)

Donnerstag, 8:30 – 10:00 Uhr, Raum 01.150-128 (Frank Hannig)

Die Übungen für das erste Übungsblatt finden am 25.04.2024 statt.

Ort und Zeit der erweiterten Übungen:

nach Absprache

Unterlagen (Folien, Übungen, sonstige Dateien):

Alle Unterlagen zur Vorlesung, Übung und erweiterten Übung finden sich in StudOn.

Zielsetzung:

Schwerpunkt der Vorlesung ist die Vermittlung von Grundlagen der parallelen Datenverarbeitung.

Inhalt:

Selbst unser PC erlaubt bereits ein hohes Maß an nebenläufiger Verarbeitung von Daten. Die effiziente Ausnutzung von Parallelität bedarf allerdings mehr als nur mehrerer Prozessoren; insbesondere muss das zu lösende Problem Parallelverarbeitung erlauben. Beschrieben werden Eigenschaften unterschiedlicher paralleler Rechnerarchitekturen und Metriken zu deren Beurteilung. Weiterhin werden Modelle und Sprachen zum Programmieren paralleler Rechner eingeführt. Neben der Programmierung von allgemeinen Parallelrechnern werden Entwurfsmethoden (CAD) vorgestellt, wie man ausgehend von einer algorithmischen Problemstellung ein massiv paralleles Rechenfeld in VLSI herleiten kann, das genau dieses Problem optimal parallel berechnet. Solche Schaltungen spielen auf der Bit- bzw. Wortebene (Arithmetik) sowie bei Problemen der Signal- und Bildverarbeitung (z.B. Filter) eine dominante Rolle.Im Einzelnen werden behandelt:

  1. Theorie der Parallelität (parallele Computermodelle, parallele Spezifikationsformen und -sprachen, Performanzmodelle und -berechnung)
  2. Klassifikation paralleler und skalierbarer Rechnerarchitekturen (Multiprozessoren und Multicomputer, Vektorrechner, Datenflussmaschinen, VLSI-Rechenfelder)
  3. Programmierbare System-on-Chip (SoC) Architekturen
  4. Programmierung paralleler Rechner (Sprachen und Modelle, Entwurfsmethoden und Compiler, Optimierung)
  5. Massive Parallelität: Vom Algorithmus zur Schaltung

Theoretische und praktische Übungen mit rechnergestützten Werkzeugen vertiefen das Wissen.

Vertiefende Literatur:

  • Kai Hwang, „Advanced Computer Architecture: Parallelism, Scalability, Programmability“
  • Michael Wolfe, „High Performance Compilers for Parallel Computing“
  • Alain Darte, Yves P. Robert, Frederic Vivien, „Scheduling and Automatic Parallelization“
  • Utpal Banerjee, „Loop Parallelization (VLSI, Computer Architecture and Digital Signal Processing)“
  • S. Y Kung, „VLSI Array Processors“