Programming parallel computers

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.

Course Content

  • 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



Slides, exercises and additional material will be published every week in Moodle. Please register there as soon as the course is available.

Course: L3+E1
Rotation: annually, each winter term
Time: Tuesday 11:40 – 13:20, Wednesday 11:40 – 13:20
Begin: 14. Oct. 2015
Location: S103/221
Lecturer: Prof. Dr. Christian Bischof
Assistants: Michael Burger and Alexander Hück and Artur Mariano
University Calendar: Tucan
Language: English


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