Basic understanding of motivation and goals of parallel computing, basic knowledge of parallel architectures, programming models, languages and interfaces (concrete examples OpenMP, Cilk, MPI), performance analysis and modeling, pitfalls, basic programming skills in the discussed parallel interfaces (C or C++ with MPI and OpenMP; pthreads and Cilk or related).
Motivation, goals of parallel computing. Parallel architectures, programming models, performance measurement and analysis. Problems in parallel algorithms. Introduction to MPI (Message-Passing interface), hreads and OpenMP. Task-parallel models and interfaces (Cilk). Other languages for multi-core processors.
First lecture: Monday, 3.10.2016
For current plan, see course Homepage.
Literature:
Rauber, Rünger: Parallel programming. Second Edition, Springer 2013.
Additional literature will be announced. Course material (slides) should suffice for the programming projects.
ECTS Breakdown:
Total: 150h = 6ECTS
Successful presentations of programming projects. 3-4 smaller, related programming projects
IMPORTANT: Registration for the groups (2 persons) is required!
Knowledge of programming languages, computer architectures, operating systems. Basic Algorithms and Datastructures (asymptotic worst-case analysis). Programming skills in C, C++, Fortran or Java.