EN

Modul

Softwareentwicklung für moderne, parallele Plattformen [M-INFO-100802]

Leistungspunkte
3
Turnus
Jedes Sommersemester
Dauer
1 Semester
Sprache
Deutsch
Level
4
Version
1

Verantwortung

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