Lehrveranstaltung:IAM 2006:Nebenläufige Programmierung

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Die druckbare Version wird nicht mehr unterstützt und kann Darstellungsfehler aufweisen. Bitte aktualisieren Sie Ihre Browser-Lesezeichen und verwenden Sie stattdessen die Standard-Druckfunktion des Browsers.


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)
Lehrende(r)
Homepage

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.

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

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

Prüfungen

Nummer Prüfer Zweitprüfer Prüfung Prüfungsart Prüfungsdetails Hilfsmittel
1930360 nicht mehr angeboten Leistungsnachweis