PDF

MODULBESCHREIBUNG

Parallele Programmierung

Kurzzeichen:
M_ParProg
Durchführungszeitraum:
FS 2014 - FS 2014
ECTS-Punkte:
4
Lernziele:

Programmierung von parallelen und nebenläufigen Systemen

  • Grundlagen der nebenläufigen und parallelen Programmierung (Threads, Synchronisation, Korrektheits- und Fairnessbedingungen, Thread Pools, asynchrone Programmierung, Speichermodelle) kennen und verstehen.
  • Entwurf und Implementation von nebenläufigen und parallelen Programmen in modernen verbreiteten Technologien (z.B. .NET C#, Java) umsetzen können.
  • Datenstrukturen, Algorithmen und Design Patterns zur effizienten Parallelisierung (Lock-Free/Wait-Free Data Structures, Recursive Parallel, Producer/Consumer u.a.) kennen und anwenden können.
  • Weitergehende Concurrency-Modelle und Technologien (Actors/CSP, Software Transactional Memory, Cluster-Parallelisierung mit MPI, GPU-Parallelisierung) kennen und einsetzen können.
Verantwortliche Person:
Luc Bläser
Zusätzlich vorausgesetzte Kenntnisse:

Englisch und sicherer Umgang mit Eclipse und MS Visual Studio von Vorteil

Modultyp:
Standard-Modul für Elektrotechnik (Bachelor 05) (Keine Semester Empfehlung)
Standard-Modul für Elektrotechnik (Bachelor 14) (Keine Semester Empfehlung)
Standard-Modul für Informatik (Bachelor 05) (Empfohlenes Semester: 4)
Standard-Modul für Informatik (Bachelor 11) (Empfohlenes Semester: 4)
Standard-Modul für Informatik (Bachelor 14) (Empfohlenes Semester: 4)
Standard-Modul für Software Engineering (Bachelor 14)
Standard-Modul für Generalist (Bachelor 14)

ECTS-Punkte pro Kategorie

Kategorie:
Elektrotechnik (Bachelor 05)
Technik / 4 Punkte
Elektrotechnik (Bachelor 14)
Technik / 4 Punkte
Informatik (Bachelor 05)
Grundlagen Informatik / 4 Punkte
Informatik (Bachelor 11)
Grundlagen Informatik / 4 Punkte
Informatik (Bachelor 14)
Grundlagen Informatik und Aufbau Informatik / 4 Punkte
Software Engineering (Bachelor 14)
Kernmodule Informatik Profile / 4 Punkte
Generalist (Bachelor 14)

Modulbewertung

Bewertungsart:
Note von 1 - 6

Leistungsbewertung

Während der Prüfungssession:
Schriftliche Prüfung, 120 Minuten
Zulassungsbedingungen zur Prüfung:

Erfolgreiche Teilnahme an den Übungen.


Während des Semesters:
 
Bewertungsart:
keine Note oder Wertung

Kurse in diesem Modul

Parallele Programmierung

Kürzel:
ParProg
Lernziele:
-
Plan und Lerninhalt:

Multi-Threading und Synchronisation

  • Einführung in die nebenläufige/parallele Programmierung und zugrundeliegenden Systemarchitekturen
  • Multi-Threading mit .NET und/oder Java
  • Kritische Abschnitte und Synchronisationsmechanismen
  • Monitor-Konzept und deren Umsetzung in gängigen Sprachen
  • Spezifische Synchronisationsprimitiven (Semaphore, Reader-Writer Locks, Latches, Barrieren u.a.)
  • Korrektheits- und Fairnessbedingungen; Problematik von Race Conditions, Deadlocks und Starvations

Thread Pools und effiziente Parallelisierung

  • Thread Pools: Mechanismus, Eignung und Limitationen
  • Task- und Daten-Parallelität
  • Parallele Algorithmen (Sortierung, Suchen etc.)
  • Asynchrone Programmierung
  • GUI und Nebenläufigkeit
  • Entwurfsmuster der Nebenläufigkeit (Producer/Consumer, Concurrent Pipelines, Reader/Writer, Recursive Parallel)
  • Speichermodelle: Atomarität, Sichtbarkeit und Optimierung
  • Lock-Free & Wait-Free Datenstrukturen

Fortgeschrittene Nebenläufigkeitsmodelle

  • Verteilte Parallelisierung mit Actors/CSP
  • Cluster Computing mit MPI
  • Software Transactional Memory
  • Vektorparallelisierung; GPU / Coprozessor-Parallelisierung
Kursart:
Uebung mit 2 Lektionen pro Woche
Vorlesung mit 2 Lektionen pro Woche

Übergangsregelungen:
Beschreibung erzeugt: 2018-12-14 11:49:44
Letzte Moduländerung: 2014-09-19 11:53:08
Modul-Id: 24067 (Vorgänger / Nachfolger)
Status: deaktiviert