Modulbeschreibung

Parallele Programmierung

ECTS-Credits:
4
Lernziele:

Programming parallel, concurrent and asynchronous systems.

Students can:

  • present the concepts of concurrency and apply them in programs
  • explain the correctness criteria of concurrency, recognize and avoid typical dangers
  • accelerate programs using parallelization on multi-cores, GPUs and clusters
  • design programs in a non-blocking manner using asynchronicity
  • explain different programming models for concurrency

Kurse in diesem Modul

Parallele Programmierung:

Basics of multi-threading und synchronization:

  • Introduction to concurrent und parallel programming
  • Multi-threading with Java und .NET
  • Critical sections and synchronisations methods
  • Monitor-concepts und their usage in the respective languages
  • Special synchronization primitives, e.g., Semaphore, Reader-Writer Locks, latches, barrieres
  • Correctness conditions; problems due to data races, race conditions, deadlocks und starvation

 

Thread Pools for efficient parallelization and asynchronicity:

  • Thread Pools: mechanism, concept, work-stealing, Java und .NET
  • Task- und Data-Parallelism
  • Parallelization of algorithms
  • Asynchronous Programming in Java (CompletableFutures)
  • C# Async-Await Programming

 

Selected topics in concurrency:

  • GUI und concurrency, asynchronous programming in GUI
  • Memory models in Java and .NET: atomicity, visibility, order, memory barriers
  • lock-free programming
  • Non-blocking data structures

 

Massive parallelization:

    • GPU parallelization: concept, kernels, launch configs, memory management, optimizations
    • HPC cluster parallelization with MPI
    • OpenMP

Advanced programming models for concurrency (optional, depending on the number of lecture weeks in the semester):

  • Distributed parallelization with Actors and CSP
  • Reactive programming
  • Hardware and software transactional memory

 

Technologies used in the module: Java, .NET C#, C/C++ (for GPU, MPI, OpenMP, etc.).

Uebung mit 2 Lektionen pro Woche
Vorlesung mit 2 Lektionen pro Woche
Disclaimer

Diese Beschreibung ist rechtlich nicht verbindlich! Weitere Informationen finden Sie in der detaillierten Modulbeschreibung.