Modul
Softwareentwicklung für moderne, parallele Plattformen [M-INFO-100802]
Leistungspunkte
3Turnus
Jedes SommersemesterDauer
1 SemesterSprache
DeutschLevel
4Version
1Verantwortung
Einrichtung
- KIT-Fakultät für Informatik
Bestandteil von
Teilleistungen
Identifier | Name | LP |
---|---|---|
T-INFO-101339 | Softwareentwicklung für moderne, parallele Plattformen | 3 |
Erfolgskontrolle(n)
Siehe Teilleistung.
Qualifikationsziele
Der Studierende
- kann Grundbegriffe der Softwaretechnik für parallele Systeme wiedergeben, Metriken zum Vermessen paralleler Software anwenden und parallele Systeme nach Kontroll- & Datenfluss sowie Organisation des physikalischen Speichers klassifizieren.
- kann Strategien zum Auffinden von Parallelität anwenden und geeignete Architektur-Muster (Fließband, Auftraggeber-Arbeiter, Work Pool, Work Stealing, Erzeuger-Verbraucher) auswählen.
- versteht Implementierungs-Muster (Array-Zugriffsmuster, Reduktion, Leader/Followers, Mutex Wrapper Facade, Scoped Locking, Thread-Safe Interface, Resource Ordering) und kann diese anwenden.
- kann das .NET-Framework beschreiben und die Besonderheiten der Laufzeitumgebung, insbesondere der Just-In-Time Übersetzung, nennen.
- beherrscht es parallele Programme in Java und C++ entwerfen. Er versteht es Fäden zu erzeugen, kritischer Abschnitte abzuleiten und Konstrukte für Warten und Benachrichtigung anzuwenden.
- kann die Ansätze zur Parallelisierung von Bibliotheken (STL, pThreads, TBB, OpenMP) unterscheiden.
- kann die Allzweck-Berechnung auf GPUs erläutern und die Anwendbarkeit in gegebenen Situation bewerten.
- kennt typische Fehler und Messeffekte in parallelen Programmen. Er kennt die Problematik von Wettlaufsituationen und kann Lösungsansätze ableiten. Er versteht Happens-before Beziehungen und kann diese mit logischen Uhren ermitteln.
- versteht und kann die Bedingungen für Verklemmungen erläutern. Er kann die Ursache von Verklemmungen ableiten und Methoden zur Behandlung oder Verhinderung von Verklemmungen auswählen.
- hat die Fähigkeit aktuelle Forschungsthemen im Bereich Multikernrechner zu erklären.
Voraussetzungen
Siehe Teilleistung.
Inhalt
Multikern-Prozessoren (Prozessoren mit mehreren parallelen Rechenkernen auf einem Chip) werden zum üblichen Standard. Die Vorlesung befasst sich mit aktuellen Themen im Bereich der Softwareentwicklung für Multikernrechner. Vorgestellt werden in diesem Kontext Entwurfsmuster, Parallelität in aktuellen Programmiersprachen, Multicore-Bibliotheken, Compiler-Interna von OpenMP sowie Fehlerfindungsmethoden für parallele Programme. Darüber hinaus werden auch Googles MapReduce-Ansatz und Programmiermodelle für GPGPUs (General-Purpose computations on Graphics Processing Units) besprochen, mit denen handelsübliche Grafikkarten als allgemeine datenparallele Rechner benutzt werden können.
Arbeitsaufwand
3 LP entspricht ca. 90 Arbeitsstunden, davon
ca. 30 Std. Vorlesungsbesuch
ca. 45 Std. Vor- und Nachbereitung
ca. 15 Std. Prüfungsvorbereitung