Programming parallel computers
The course aims to teach students fundamental and advanced concepts of parallel computing. Topics include memory systems, different paradigms of programming parallel computers (OpenMP, MPI, CUDA/OpenCL) and scalability and efficiency of parallel algorithms and systems.
- Foundations of parallel programming
- Parallel architectures, i.e. multi- and many-core computers with shared and distributed memory
- Message-Passing Interface (MPI), OpenMP, OpenCL programming standards
- Building blocks of parallel computations
- Criteria for the design of parallel algorithms
- Basics in programming C/C++
- Foundations of Computer Science 3 (memory-hierarchy, threads and processes, compilers and linkers)
Slides, exercises and additional material will be published every week in Moodle. Please register there as soon as the course is available.
|Rotation:||annually, each winter term|
|Time:||Tuesday 11:40 – 13:20, Wednesday 11:40 – 13:20|
|Begin:||14. Oct. 2015|
|Lecturer:||Prof. Dr. Christian Bischof|
|Assistants:||Michael Burger and Alexander Hück and Artur Mariano|
Exercises will be handled through Moodle.
- Using OpenMP: Portable Shared Memory Parallel Programming, Volume 10, Barbara Chapman, Gabriele Jost and Ruud Van Der Pas, MIT Press, 2007
- Parallel programming in C with MPI and OpenMP, Michael J. Quinn, McGraw-Hill, 2004
- Parallele Programmierung, T. Rauber and G. Rünger, Springer, 2007
- Intel Xeon Phi Coprocessor High-Performance Programming, J Jeffers und J. Reinders, Morgan Kaufman, 2013
- Heterogeneous Computing With OpenCL, B. R. Gaster, Elsevier, 2011
- Programming Massively Parallel Processors: A Hands-On Approach, D. B. Kirk, W. W. Hwu, Morgan Kaufmann, 2012