Vorlesung Nebenläufige Programmierung

Zurück zur Übersicht ...

Titel
Nebenläufige Programmierung
Title (in english)
Concurrent Programming
Kürzel (Prüfungsamt)
NEBPRG6.WP
Art der Lehrveranstaltung
Vorlesung (FWP)
Lehrende(r)
Fakultät
Wird gehalten
im Sommersemester
empfohlenes Semester
IN4, IN6, WI6, TI6
Credits
7,5 CP
Semesterwochenstunden
4 SWS
zugehöriges Praktikum
2 SWS
Leistungsnachweis(e)
SoSe 2016 (TI6, freigegeben am 07.04.2016)
SoSe 2016 (IN4, freigegeben am 07.04.2016)
SoSe 2016 (IN6, freigegeben am 07.04.2016)
SoSe 2016 (WI6, freigegeben am 07.04.2016)
WiSe 2015 (WI6, freigegeben am 15.10.2015)
WiSe 2015 (IN4, freigegeben am 15.10.2015)
WiSe 2015 (IN6, freigegeben am 15.10.2015)
Voraussetzungen
Grundkenntnisse in einer objektorientierten Programmiersprache, bevorzugt Java oder C++.

Zusammenfassung

Mit Multicore-Architekturen, insbesondere der für die nächsten Jahre absehbaren rasanten Zunahme der Zahl der auf einer CPU verfügbaren Kerne, rückt der Aspekt Parallelisierung auch für den Anwendungsentwickler in den Vordergrund. Dazu kommt, dass immer mehr die Ressourcen von Graphikkarten für allgemeinere Aufgaben benutzt werden können. Um die derart verfügbare Rechenleistung effizient ausnutzen zu können, ist eine entsprechende Strukturierung der Programme und die Verwendung von geeigneten Infrastrukturen notwendig. In der Vorlesung werden die damit verbundenen Aufgabenstellungen und Probleme besprochen, sowie Lösungsmöglichkeiten aufgezeigt. Dabei wird herausgearbeitet, wie sich etablierte Paradigmen (OOP, Funktionale und Objektfunktionale Programmierung) mit Nebenläufigkeit vertragen bzw. mit dieser in Einklang gebracht werden können. Als Hauptsprache zur Demonstration der Konzepte wird Java verwendet. Es gibt aber auch kleinere multilinguale Ausflüge z. B. in Richtung Clojure, Scala und Cuda-C, um deren Vorteile in bestimmten Anwendungssituationen hervorzuheben. Im angegliederten Praktikum sollen kleinere Aufgaben zum vermittelten Stoff selbständig bearbeitet werden, insbesondere Lösungen in verschiedenen Implementierungsvarianten hinsichtlich Kriterien wie Performanz, Durchsatz, Handhabbarkeit, Skalierbarkeit verglichen werden. Die Ergebnisse sollen im Plenum vorgestellt, gegeneinander abgeglichen und diskutiert werden. Entsprechend leistungsfähige Hardware wird zur Verfügung gestellt.

Ziele

Inhalte

Literatur

wird in der Vorlesung bekannt gegeben