|MODULBEAUFTRAGTE:R:||Prof. Dr. Andreas Vogel|
|DOZENT:IN:||Jun. Prof. Dr. Andreas Vogel|
|FAKULTÄT:||Fakultät für Bau- und Umweltingenieurwissenschaften|
|ANGEBOTEN IM:||jedes Sommersemester|
Beamer, computer lab, numerical experiments
LERNZIELEIn this module, the students acquire professional skills to program multi- and manycore
processors employing multi-threaded execution and handling shared-memory access patterns.
Theoretical properties are conveyed as well as practical implementation. Via presentations
of selected topics, students attain the ability to survey and acquire knowledge on advanced
scientific topics independently and are qualified to illustrate such topics in the form of a
presentation and numerical examples.
INHALTThe lecture addresses parallelization for multi- and manycore processors. Thread-based programming
concepts (pthreads, C++11 threads, OpenMP, OpenCL) are introduced and bestpractice
implementation aspects are highlighted based on applications from scientific computing.
In the first part, the lecture provides an overview on relevant data structures, solver
techniques and programming patterns from scientific computing. An introduction to multithreading
programming on multicore systems is then provided with special attention to
shared-memory aspects. Parallelization patterns are discussed and highlighted. Numerical
experiments and self-developed software implementations are used to discuss and illustrate
the presented content. In the second part, students are assigned advanced topics for sharedmemory
computation from the engineering science including finite element methods and artificial
intelligence. Based on a scientific paper, students present their topic to the lecture
audience in form of a beamer presentation and numerical illustrations.
VORAUSSETZUNGEN CREDITSmit mindestens ausreichend bewertete Hausarbeit
LITERATUR∙ G. Hager, G.Wellein, Introduction to High Performance Computing for Scientists and
Engineers, CRC Press, 2010
∙ T. Rauber, G. Rünger, Parallel Programming: for Multicore and Cluster Systems,
∙ OpenMP Application Programming Interface (2015), www.openmp.org/wpcontent/
∙ OpenCL Appilication Programming Interface (2014),
∙ additional literature will be announced in the lecture