I725 – Parallel Programming

Module
Parallel Programming
Parallele Algorithmierung
Module number
I725 [I-725]
Version: 2
Faculty
Informatics/Mathematics
Level
Master
Duration
1 Semester
Semester
Summer and Winter semester
Module supervisor

Prof. Dr.-Ing. habil. Peter Sobe
peter.sobe(at)htw-dresden.de

Lecturer(s)

Prof. Dr.-Ing. habil. Peter Sobe
peter.sobe(at)htw-dresden.de

Course language(s)

German - 80.00%
in "Parallele Algorithmierung"

English - 20.00%
in "Parallele Algorithmierung"

ECTS credits

5.00 credits

Workload

150 hours

Courses

4.00 SCH (2.00 SCH Lecture | 2.00 SCH Internship)

Self-study time

90.00 hours

Pre-examination(s)
None
Examination(s)

Written examination
Examination time: 120 min | Weighting: 100%
in "Parallele Algorithmierung"

Form of teaching

2/0/2  V/Ü/P

Media type
No information
Instruction content/structure
  • Einführung in die Parallelverarbeitung: Ziele, Grenzen, Bezug zu Algorithmen, Quantifizierung des Gewinns durch Parallelverarbeitung
  • Modelle der Parallelverarbeitung
  • Hardware-Architekturen und Konzepte der parallelen Programmierung
  • Multithreading und Programmierung mit OpenMP
  • Multiprocessing und Programmierung mit MPI (Message Passing Interface)
  • Parallelisierung von Algorithmen, Verfahren zur Rechenlastverteilung
  • Fortgeschrittene Aspekte: I/O, Leistungsbewertung, Zuverlässigkeit
  • Exkurse: GPU-Programmierung, weitere Programmiersprachen und Spracherweiterungen für die Parallelverarbeitung
  • Introduction to parallel computing: goals and limitations, algorithmic aspects, measures
  • Models of parallel processing
  • Hardware architectures and concepts of parallel programming
  • Multithreading and OpenMP programming
  • Multiprocessing and MPI (Message Passing Interface)
  • Algorithms and parallelisation, computational load distribution
  • Advanced topics: I/O, performance measurement and evaluation, dependability techniques
  • Excursus: GPU programming, other programming languages and language extensions for parallelism
Qualification objectives

Die Studenten lernen die parallele Programmierung und die Erstellung effizienter Algorithmen zur parallelen Verarbeitung großer Datenmengen auf verschiedenen Prozessorkernen. Sie lernen Konzepte moderner asynchroner Methoden in .NET zu nutzen und können gegebene Algorithmen in OpenMP, sowie MPI parallelisieren. Sie kennen theoretische Schwierigkeiten des Multithreading (Race-Conditions, Deadlock, Synchronisation) und haben die Fähigkeit diese zu meistern. Sie sind in der Lage die Leistung paralleler Algorithmen zu bewerten und können effiziente parallele Programme schreiben sowohl für einfache Desktop-Rechner als auch für Supercomputer.

Social and personal skills
No information
Special admission requirements
No information
Recommended prerequisites

Programmierung II (I-121)

Kenntnisse in imperativer und objektorientierter Programmierung, vorzugsweise in C/C++

Continuation options
No information
Literature
  • S. Hoffmann; OpenMP; Springer, 2009
  • W.D. Gropp; MPI - eine Einführung; Oldenbourg Verlag, 2007
  • T. Rauber, G. Rünger; Parallele Programmierung; Springer Viehweg, 2012
  • T. Ungerer; Parallelrechner und parallele Programmierung, Spektrum Akademischer Verlag, Heidelberg, Berlin 1997

 

Current teaching resources

Skript zur Lehrveranstaltung

Notes
No information