I725 – Parallele Algorithmierung
Parallel Programming
Version: 2
Prof. Dr.-Ing. habil. Peter Sobe
peter.sobe(at)htw-dresden.de
Prof. Dr.-Ing. habil. Peter Sobe
peter.sobe(at)htw-dresden.de
Deutsch - 80.00 %
Englisch - 20.00 %
5.00 Credits
150 Stunden
4.00 SWS (2.00 SWS Vorlesung | 2.00 SWS Praktikum)
90.00 Stunden
Schriftliche Prüfungsleistung
Prüfungsdauer: 120 min | Wichtung: 100 %
2/0/2 V/Ü/P
- 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
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.
Programmierung II (I-121)
Kenntnisse in imperativer und objektorientierter Programmierung, vorzugsweise in C/C++
- 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
Skript zur Lehrveranstaltung