Modulbeschreibung IN2013

Modulbeschreibung

IN2013: High Performance Computing - Programmiermodelle und Skalierbarkeit

Fakultät für Informatik

Modulniveau:
Bachelor/Master
Sprache:
Deutsch/Englisch
Semesterdauer:
Einsemestrig
Häufigkeit:
Unregelmäßig
Credits*:
4
Gesamt-
stunden:

120
Eigenstudiums-
stunden:

75
Präsenz-
stunden:

45
* Die Zahl der Credits kann in Einzelfällen studiengangsspezifisch variieren. Es gilt der im Transcript of Records oder Leistungsnachweis ausgewiesene Wert.
Beschreibung der Studien-/Prüfungsleistungen:
Prüfungsart: Klausur

Die Prüfungsleistung wird in Form einer Klausur von 90 Minuten erbracht. In dieser soll nachgewiesen werden, dass in begrenzter Zeit ein Problem erkannt wird und Wege zu einer Lösung gefunden werden können. Die Prüfungsfragen gehen über den gesamten Vorlesungsstoff. Die Antworten erfordern eigene Formulierungen. Darüber hinaus können kurze Rechenaufgaben gestellt werden. Die Klausuraufgaben prüfen die Fähigkeit der Studierenden Teile von sequentiellen Programmen in Bezug auf ihr Parallelisierungspotential zu identifizieren ab. Die Teilnehmer weisen nach, dass sie passende Parallelisierungsstrategien anwenden können. Ferner demonstrieren sie den geübten Umgang mit essentiellen Grundlagen von speicher- oder nachrichtgekoppelten parallel Systemen und deren Programmierung.
Wiederholungsmöglichkeit:
Im Folgesemester: Nein
Am Semesterende: Ja
(Empfohlene) Voraussetzungen:
keine Angabe
Inhalt:
- Einführung (Rechnerklassifizierung, Ebenen der Parallelität, Leistungsanalyse, Topologien)
- Grundlagen paralleler Programme (wesentliche Begriffe, Kommunikation und Synchronisation über gemeinsamen Speicher bzw. Nachrichten, parallele Programmstrukturen, Entwurf paralleler Programme)
- Programmierung speichergekoppelter Systeme (Cachekohärenz und Speicherkonsistenz, Variablenanalyse, Programmierung unter OpenMP)
- Programmierung nachrichtengekoppelter Systeme (Message-Passing-Paradigma, Programmierung unter MPI)
- Dynamische Lastverteilung (Grundbegriffe, ausgewählte Strategien, Lastverteilung mittels raumfüllender Kurven)
- Beispiele paralleler Algorithmen (Bitonisches Sortieren, etc.)
Lernergebnisse:
Nach der erfolgreichen Teilnahme an dem Modul sind die Studierenden in der Lage, gut bzw. schlecht parallelisierbare Teile vorliegender sequentieller Algorithmen oder Programme zu identifizieren. Sie können geeignete Parallelisierungsstrategien auswählen sowie anwenden. Sie sind ferner mit den wesentlichen Charakteristika speicher- bzw. nachrichtengekoppelter paralleler Systeme und deren Programmierung vertraut, dass sie vorgegebene oder selbst entwickelte parallele Algorithmen in effiziente Programme (MPI oder OpenMP) auf solchen Systemen umsetzen können.
Lehr- und Lernmethoden:
Das Modul besteht aus einer Vorlesung und einer begleitenden Übung. Die Inhalte der Vorlesung werden im Vortrag und durch Präsentationen vermittelt. Studierende sollen zum Studium der Literatur und der inhaltlichen Auseinandersetzung mit den Themen angeregt werden. In den Übungen werden teilweise in Gruppenarbeit gemeinsam konkrete Fragestellungen beantwortet und ausgesuchte Beispiele bearbeitet.
Medienform:
Folien, Tafelarbeit, Übungsblätter
Literatur:
- G. Alefeld, I. Lenhardt, H. Obermaier: Parallele numerische Verfahren, Springer, 2002
- I. Foster: Designing and Building Parallel Programs, Addison-Wesley, 1995, and evolving online version
- A. Grama, A. Gupta, G. Karypis, V. Kumar: Introduction to Parallel Computing, Addison Wesley, sec. ed. 2003
- M. J. Quinn: Parallel Programming in C with MPI and OpenMP, McGraw-Hill, 2003
- H. Sagan: Space-Filling Curves, Springer, 1994
- T. Ungerer: Parallelrechner und parallele Programmierung, Spektrum, 1997
Modulverantwortliche(r):
Bungartz, Hans-Joachim; Prof. Dr. rer. nat. habil.: bungartz@tum.de
Lehrveranstaltungen (Lehrform, SWS) Dozent(in):