Lehrveranstaltung:IMS 2014:Nebenläufige Programmierung

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Wechseln zu:Navigation, Suche


Diese Lehrveranstaltung wird nicht mehr angeboten.
 Die nachfolgenden Informationen wurden teilweise von Lehrveranstaltung:IAM 2006:Nebenläufige Programmierung übernommen.

Studiengang Interaktive Mediensysteme (IMS 2014)
Modul Workshops und Seminare
Name Nebenläufige Programmierung
Name (englisch) Concurent Programming
Kürzel NBPRG.WP
Voraussetzungen Grundkenntnisse in einer objektorientierten Programmiersprache, bevorzugt Java.
Wird gehalten: veraltet
Semester IMS 1IMS 2IMS 3
Lehrformen Vorlesung
Credits 5
SWS 4 (Lehre: 4, Teaching Points: 4)
Workload Präsenzstudium: 60 h (durchschnittlich 4 h pro Woche)
Eigenstudium: 90 h (durchschnittlich 6 h pro Woche)
Notengebung Kommanote (1,0; 1,3; 1,7; 2,0, 2,3; 2,7; 3,0; 3,3; 3,7; 4,0; 5,0)
Gewichtung (Modulnote): 50 %
Verantwortliche(r) Gerhard Meixner
Lehrende(r) Gerhard Meixner
Homepage https://www.hs-augsburg.de/fakultaet/informatik/studium/wahlpflichtveranstaltung/nebenlaeufige programmierung/index.html

1 Lernziele

  • Vertieftes Verständnis für die Unterschiede von nebenläufigen/parallelen gegenüber rein sequentiellen Programmen, sowie für die mit (Quasi-)Parallelität verbundene Komplexität.
  • Die Fähigkeit, effiziente, thread-sichere Programmeinheiten und gut skalierende Programme zu realisieren.
  • Kenntnis und Einordnung verschiedener Möglichkeiten und Abstraktionsstufen zur Realisierung dieser Aufgabe.
  • Einblick in aktuelle Entwicklungstendenzen.

2 Inhalte

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. Der Inhalt gliedert sich auf in drei große Blöcke:

  1. Klassisches Threading am Beispiel JVM und Java
  2. Objektfunktionale Programmierung und Aktoren am Beispiel Scala
  3. Besonderheiten der GPU-Programmierung

2.1 Inhaltsverzeichnis

  • Nebenläufigkeit auf der JVM in Java
    • Threads, elementare Formen der Synchronisation und das Java-Memory-Model
    • Konsistenz- und Fortschrittsbedingungen
    • OOP und Nebenläufigkeit
    • Thread-sichere Klassen und Programme
    • Thread-Pools
    • Lock-freie Synchronisation
  • Nebenläufigkeit in einer objekt-funktionalen Sprache am Beispiel Scala
    • Einführung in die grundlegenden Konzepte von Scala
    • Funktionale Programmierung und Nebenläufigkeit
    • Aktoren und Akka
    • Software Transaction Memory
  • GPU-Programmierung
    • Architektur aktueller GPUs
    • CUDA an Hand von Beispielen
    • Java und GPU-Programmierung

3 Prüfungen

Nummer Prüfer Zweitprüfer Prüfung Prüfungsart Prüfungsdetails Hilfsmittel
1990137 Gerhard Meixner Michael Kipp nicht mehr angeboten Leistungsnachweis