Loading
     

Modulbeschreibung - Detailansicht

Wichtigste Meldungen anzeigenMeldungsfenster schließen
Moduldetails
High Performance Computing - Programmiermodelle und Skalierbarkeit
Fakultät für Informatik
TUINFIN
4
1
3
IN2013
Zuordnungen zu SPO-Versionen
Lehrveranstaltungen und Prüfungsveranstaltungen
Beschreibungen
Export
Allgemeine Daten (Modulhandbuch)
Bachelor/Master
Einsemestrig
Unregelmäßig
Deutsch/Englisch
Arbeitsaufwand (Work Load)
120
45
75
Studien- und 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.
N
J
Beschreibung
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.
- 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.)
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.
Folien, Tafelarbeit, Übungsblätter
- 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
Hans-Joachim Bungartz, Prof. Dr. (bungartz@tum.de)