Lehrveranstaltung:IAM 2006:Nebenläufige Programmierung

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


Diese Lehrveranstaltung wird nicht mehr angeboten.
 

Studiengang Interaktive Medien (IAM 2006)
Studienabschnitt Vertiefungsphase
Modul Wahlpflichtfach Informatik
Name Nebenläufige Programmierung
Name (englisch) Concurent Programming
Kürzel NEBPRG4.WP
Voraussetzungen Es müssen mindestens 80 Credits in den Studienabschnitten Grundlagen- und Orientierungsphase und Aufbauphase erworben worden sein. Grundkenntnisse in einer objektorientierten Programmiersprache, bevorzugt Java.
Wird gehalten: veraltet
Semester IAM 7
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): 100 %
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
1930360 Gerhard Meixner Michael Kipp nicht mehr angeboten Leistungsnachweis