Lehrveranstaltung:IMS 2014:Nebenläufige Programmierung: Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Kowa (Diskussion | Beiträge)
Die Seite wurde neu angelegt: „{{Lehrveranstaltung |vererbung=IAM 2006:JavaScript |in_handbuch=Nein |studiengang=IMS 2014 |verwendbarkeit= |modul=Workshops und Seminare |name= |name_en= |alt…“
 
Kowa (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
{{Lehrveranstaltung
{{Lehrveranstaltung
|vererbung=IAM 2006:JavaScript
|vererbung=IAM 2006:Nebenläufige Programmierung
|in_handbuch=Nein
|in_handbuch=Nein
|studiengang=IMS 2014
|studiengang=IMS 2014

Aktuelle Version vom 4. November 2016, 14:36 Uhr


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) Daniel Rothaug
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
1990137 nicht mehr angeboten Leistungsnachweis