Parallelrechner und Parallelprogrammierung
- type: Vorlesung (V)
- semester: SS 2017
- place: Gebäude 20.21 (SCC-Süd), Raum 217
- time: Mittwoch, 11:30-13:00, wöchentlich
-
lecturer:
Prof. Dr. Achim Streit
Hartmut Häfner
- sws: 2
- lv-no.: 24617
links
Empfehlungen
Kenntnisse zu Grundlagen aus der Lehrveranstaltung Rechnerstrukturen [24570] sind hilfreich.
Beschreibung
Die Vorlesung gibt eine Einführung in die Welt moderner Parallel- und Höchstleistungsrechner, des Supercomputings bzw. des High-Performance Computings (HPC) und die Programmierung dieser Systeme.
Zunächst werden allgemein und exemplarisch Parallelrechnersysteme vorgestellt und klassifiziert. Im Einzelnen wird auf speichergekoppelte und nachrichtengekoppelte System, Hybride System und Cluster sowie Vektorrechner eingegangen. Aktuelle Beispiele der leistungsfähigsten Supercomputer der Welt werden ebenso wie die Supercomputer am KIT kurz vorgestellt.
Im zweiten Teil wird auf die Programmierung solcher Parallelrechner, die notwendigen Programmierparadigmen und Synchronisationsmechanismen, die Grundlagen paralleler Software sowie den Entwurf paralleler Programme eingegangen. Eine Einführung in die heute üblichen Methoden der parallelen Programmierung mit OpenMP und MPI runden die Veranstaltung ab.
Zunächst werden allgemein und exemplarisch Parallelrechnersysteme vorgestellt und klassifiziert. Im Einzelnen wird auf speichergekoppelte und nachrichtengekoppelte System, Hybride System und Cluster sowie Vektorrechner eingegangen. Aktuelle Beispiele der leistungsfähigsten Supercomputer der Welt werden ebenso wie die Supercomputer am KIT kurz vorgestellt.
Im zweiten Teil wird auf die Programmierung solcher Parallelrechner, die notwendigen Programmierparadigmen und Synchronisationsmechanismen, die Grundlagen paralleler Software sowie den Entwurf paralleler Programme eingegangen. Eine Einführung in die heute üblichen Methoden der parallelen Programmierung mit OpenMP und MPI runden die Veranstaltung ab.
Literaturhinweise
Ziel
- David E. Culler, Jaswinder Pal Singh, Anoop Gupta: “Parallel computer architecture: a hardware, software approach”, Morgan Kaufmann, 1999, ISBN 1-55860-343-3
- Theo Ungerer: „Parallelrechner und parallele Programmierung“, Spektrum Verlag, 1997, ISB: 3-8274-0231-X
- John L. Hennessy, David A. Patterson: “Computer architecture: a quantitative approach (4. edition)”, Elsevier, 2007, ISBN 0-12-370490-1, 978-0-12-370490-0
- Kai Hwang, Zhiwei Xu: “Scalable parallel computing: technology, architecture, programming”, McGraw-Hill, 1998, ISBN 0-07-031798-4
- William Gropp, Ewing Lusk, Anthony Skjellum: “Using MPI: portable parallel programming with the message-passing interface (2. edition)”, MIT Press, 1999, ISBN 0-262-57132-3, 0-262-57134-X
- Barbara Chapman, Gabriele Jost, Ruud van der Pas: “Using OpenMP: portable shared memory parallel programming”, MIT Press, 2008, ISBN 0-262-53302-2, 978-0-262-53302-7
Studierende erörtern die Grundbegriffe paralleler Architekturen und die Konzepte ihrer Programmierung. Sie analysieren verschiedene Architekturen von Höchstleistungsrechnern und differenzierenzwischen verschiedene Typen anhand von Beispielen aus der Vergangenheit und Gegenwart.
Studierende analysieren Methoden und Techniken zum Entwurf, Bewertung und Optimierung paralleler Programme, die für den Einsatz in Alltags- oder industriellen Anwendungen geeignet sind und wenden diese an. Studierende können Probleme im Bereich der Parallelprogrammierung beschreiben, analysieren, und beurteilen.
Arbeitsbelastung
120 h / Semester, davon 30 h Präsenzzeit und 90 h Selbstlernen aufgrund der Komplexität des Stoffs
Prüfung
Die Erfolgskontrolle erfolgt in Form einer mündlichen Prüfung im Umfang von i.d.R. 20 Minuten nach § 4 Abs. 2 Nr. 2 SPO.