Parallel Computing

NUMMER: 127501
KÜRZEL: PComb
MODULBEAUFTRAGTE:R: Prof. Dr.-Ing. Markus König
DOZENT:IN: Prof. Dr. Markus König, Dr. Karlheinz Lehner
FAKULTÄT: Fakultät für Bau- und Umweltingenieurwissenschaften
SPRACHE: Englisch
SWS: 4 SWS
CREDITS: 6 CP
ANGEBOTEN IM: jedes Sommersemester

PRÜFUNGEN

FORM: Semesterbegleitend. Team project + oral examination
TERMIN: Siehe Prüfungsamt.

LERNFORM

lectures
∙ exercises using computers
∙ team projects

LERNZIELE

Goals of the course “Parallel Computing” include a basic understanding of the theoretical
foundation for efficient parallel algorithms, the architecture of parallel hardware systems and
current parallel software paradigms used in research and industry today. Also, students learn
how to develop parallel algorithms and implement them using state-of-the-art software systems
and programming tools. In particular, numerically intensive engineering applications
are a focus within the lecture itself as well as a target for the team projects carried out by
the students of this course. Further, students must clearly present their projects results in
a classroom setting to an audience with various technical background (the course is attended
by students from applied computer science as well as by students from computational
engineering).
When the students have successfully complete this course,
∙ students will be familiar with the development of parallel algorithms and parallel software
systems and have a good unterstanding of how to realisize efficient parallel programs;
∙ students will have a good understanding of the basics of parallel programming to be able
to, for example, select a proper parallel software system or tool that is appropriate for
a given numerical engineering task, or be able to discuss possible solutions concerning
necessary hardware or software requirements at a competent level.

INHALT

Introduction to parallel computing using examples from the field of engineering
∙ Theoretical foundations of parallel computing (concurrency, parallel processes, deadlocks,
Amdahl’s Law, Flynn’s taxonomy, efficiency metrics, memory models, etc.)
∙ Parallel programming based on “shared memory” using the OpenMP application programming
interface
∙ Parallel programming based on “distributed memory” based the Message Passing Interface
(MPI)
Hardware based parallel programming based on the General Purpose Graphical Processing
Unit (GPGPU)
∙ Application of parallel programming paradigms to solve engineering tasks as a team
project

VORAUSSETZUNGEN CREDITS

Successful completion of a team project; presentation of project results in the classroom; oral examination.

EMPFOHLENE VORKENNTNISSE

Programmierkenntnisse in den Sprachen C, C++ oder Java

LITERATUR

A. Schill, Th. Springer, "Verteilte Systeme", Springer-Verlag, 2007
2. Th. Raubner, G. Rünger, "Parallele Programmierung", Spring-Verlag, 2007
3. G. Bengel, et. al., "Masterkurs Parallele und Verteilte Systeme", Vieweg+Teubner,
2008