Praxis der Multikern-Programmierung: Werkzeuge, Modelle, Sprachen

  • Type: Vorlesung (V)
  • Semester: WS 16/17
  • Time: 17.10.2016
    14:00 - 15:30 wöchentlich
    50.34 Raum -118 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten


    20.10.2016
    15:45 - 17:15 wöchentlich
    50.34 Raum 131 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    24.10.2016
    14:00 - 15:30 wöchentlich
    50.34 Raum -118 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    27.10.2016
    15:45 - 17:15 wöchentlich
    50.34 Raum 131 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    31.10.2016
    14:00 - 15:30 wöchentlich
    50.34 Raum -118 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    03.11.2016
    15:45 - 17:15 wöchentlich
    50.34 Raum 131 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    07.11.2016
    14:00 - 15:30 wöchentlich
    50.34 Raum -118 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    10.11.2016
    15:45 - 17:15 wöchentlich
    50.34 Raum 131 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    14.11.2016
    14:00 - 15:30 wöchentlich
    50.34 Raum -118 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    17.11.2016
    15:45 - 17:15 wöchentlich
    50.34 Raum 131 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    21.11.2016
    14:00 - 15:30 wöchentlich
    50.34 Raum -118 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    24.11.2016
    15:45 - 17:15 wöchentlich
    50.34 Raum 131 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    28.11.2016
    14:00 - 15:30 wöchentlich
    50.34 Raum -118 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    01.12.2016
    15:45 - 17:15 wöchentlich
    50.34 Raum 131 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    05.12.2016
    14:00 - 15:30 wöchentlich
    50.34 Raum -118 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    08.12.2016
    15:45 - 17:15 wöchentlich
    50.34 Raum 131 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    12.12.2016
    14:00 - 15:30 wöchentlich
    50.34 Raum -118 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    15.12.2016
    15:45 - 17:15 wöchentlich
    50.34 Raum 131 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    19.12.2016
    14:00 - 15:30 wöchentlich
    50.34 Raum -118 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    22.12.2016
    15:45 - 17:15 wöchentlich
    50.34 Raum 131 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    09.01.2017
    14:00 - 15:30 wöchentlich
    50.34 Raum -118 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    12.01.2017
    15:45 - 17:15 wöchentlich
    50.34 Raum 131 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    16.01.2017
    14:00 - 15:30 wöchentlich
    50.34 Raum -118 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    19.01.2017
    15:45 - 17:15 wöchentlich
    50.34 Raum 131 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    23.01.2017
    14:00 - 15:30 wöchentlich
    50.34 Raum -118 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    26.01.2017
    15:45 - 17:15 wöchentlich
    50.34 Raum 131 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    30.01.2017
    14:00 - 15:30 wöchentlich
    50.34 Raum -118 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    02.02.2017
    15:45 - 17:15 wöchentlich
    50.34 Raum 131 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    06.02.2017
    14:00 - 15:30 wöchentlich
    50.34 Raum -118 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

    09.02.2017
    15:45 - 17:15 wöchentlich
    50.34 Raum 131 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten


  • Lecturer: Prof.Dr. Walter Tichy
    Philip Pfaffe
    Martin Tillmann
  • SWS: 4
  • Lv-No.: 24293
VoraussetzungenEmpfehlungen:

Grundlegende Kenntnisse in C/C++ oder Java, Betriebssysteme, Rechnerstrukturen und Softwaretechnik werden vorausgesetzt.

BeschreibungMultikern-Prozessoren mit mehreren Rechenkernen auf einem Chip werden zum üblichen Standard. Diese Vorlesung fokussiert auf die Vermittlung praktischer Fähigkeiten der Softwareentwicklung für parallele Systeme. Ausgewählte Prinzipien aus den Bereichen Programmiermodelle und -Sprachen, Entwurfsmuster sowie Fehlerfindung werden exemplarisch und ausführlich diskutiert. Das vermittelte Wissen wird anhand von praktischen Übungen und Fallstudien intensiv vertieft.
LehrinhaltMultikern-Prozessoren mit mehreren Rechenkernen auf einem Chip werden zum üblichen Standard. Diese Vorlesung fokussiert auf die Vermittlung praktischer Fähigkeiten der Softwareentwicklung für parallele Systeme. Ausgewählte Prinzipien aus den Bereichen Programmiermodelle und -Sprachen, Entwurfsmuster sowie Fehlerfindung werden exemplarisch und ausführlich diskutiert. Das vermittelte Wissen wird anhand von praktischen Übungen und Fallstudien intensiv vertieft.
Anmerkung

Die Veranstaltung wird derzeit nur im Wintersemester angeboten.

KurzbeschreibungBitte beachten Sie für weitere Informationen die Ilias-Seite.
ArbeitsbelastungVorlesung mit 4SWS und praktischem Programmierprojekt, 6 LP.

6 LP entspricht ca. 180 Arbeitsstunden, davon

ca. 60 Std. Präsenz

ca. 10 Std. Bearbeitung Übungsaufgaben

ca. 5 Std. Präsentationsvorbereitung

ca. 10 Std. Schriftliche Ausarbeitung

ca. 95 Std. Bearbeitung Programmierprojekt

ZielDie Teilnehmer beherrschen theoretische Grundlagen der Parallelprogrammierung, sie kennen die Konzepte von Sperren, Barrieren und gemeinsamem Speicher und können diese Konzepte zum Entwurf

paralleler Algorithmen anwenden. Sie beherrschen die Bedienung von unterstützenden Werkzeugen wie Profilern und Debuggern und können damit die Implementierungen paralleler Programme bewerten.

Insbesondere kennen die Teilnehmer die Konzepte diverser paralleler Programmierumgebungen wie z.B. Java, pthreads, OpenMP und OpenCL und sind in der Lage, mittels dieser komplexe parallele Programme zu entwerfen und zu implementieren. Weiterhin können sie alternative Programmierparadigmen wie beispielsweise nicht-blockierende Synchronisation, nachrichtenbasierte Koordination (z.B. Google Go) und heterogene Programmierung (OpenACC) erläutern.

Die Studierenden sind in der Lage, parallele Programme zu analysieren und dabei Optimierungspotenzial und Programmierfehler aufzudecken und zu verbessern. Sie können parallele Algorithmen bewerten und vergleichen sowie neue entwickeln.

Studierende sind in der Lage, sequentieller Software auf Parallelisierungspotenzial hin zu untersuchen und sie mit unterschiedlichen Technologien in ein paralleles Programm zu überführen. Dazu können sie die Stärken und Schwächen unterschiedlicher paralleler Hard- und Software-Plattformen bewerten und Aussagen über ihre Eignung für das gegebene Problem treffen.

Weiterhin haben die Teilnehmer demonstriert, dass sie fähig sind, sich in große, reale Projekte einzuarbeiten. Sie sind geübt in Teamarbeit, strukturierter Formulierung, Präsentation und schriftlicher

Ausarbeitung ihrer Ergebnisse.

PrüfungDie Erfolgskontrolle erfolgt in Form einer Erfolgskontrolle anderer Art nach § 4 Abs. 2 Nr. 3 SPO und besteht aus mehreren Teilaufgaben. Die Leistungsbewertung erfolgt anhand von Übungsblättern, Ergebnissen aus einem Programmierprojekt, einer Abschlusspräsentation und einem Abschlussbericht.