This tutorial introduces into the field of High Performance Computing (HPC) in mathematical areas and engineering sciences with special focus on MPI, OpenMP, OpenACC and CUDA. The students will acquire specialties of recent and future hardware concepts as well as on supported software and compilers. The course work will be organized such that all course topics will be implemented on the appropriate hardware ranging from a single CPU via multiple CPUs to clusters of CPUs and GPUs/Xeon Phi. The students will be able to adapt research specific code such that they can take advantage of available computer resources. The four main goals of the tutorial consist of
Knowledge of the students on algorithms and data structures for HPC and active use of this knowledge.
The students get in touch with HPC related concepts and architectures, and the students are able to adopt new developments in this area onto the problem under consideration.
Standard compiler and software support for parallel computer architectures is known and used by the students for solving mathematical problems by means of HPC hardware.
The students are able to write/adapt parallel programs on various parallel platforms.
Comprehensive first steps for the impatient and some code.
Fr, Sept 5 | 9:00-10:00 | Introduction into Hardware and parallel concepts (1) | |
|
10:00-10:30 | Coffee break | |
|
10:30-11:15 | A simple FEM solver and its data parallelism (2) | |
|
11:15-12:00 | OpenMP and MPI parallelization (3, ex) | |
|
12:00-13:00 | Lunch break | |
|
13:00-15:00 | OpenACC and CUDA parallelization for GPUs (4, odp_a, odp_b) | |
|
15:00-15:30 | Coffee break | |
|
15:30-17:00 | Combined MPI + accelerator parallelization (5) | |