High-performance computing using OpenMP

Planned courses

In this course you will learn to harness the computational power of modern multi-core CPUs for your daily scientific computations. OpenMP is a broad standard for shared-memory computing supported by all major compilers. We will cover the most important programming constructs, some correctness and performance bugs, and how to make a realistic assessment of performance.

At the end of the day, you should be able to:

  1. Parallelize a simple C/C++/Fortran code based on OpenMP parallel loops and tasks
  2. Understand and avoid deadlocks and race conditions in your code;
  3. Optimize your code for data locality;
  4. Recognize and address three types of performance issues:
    1. Load imbalance
    2. False sharing
    3. Non-uniform memory accesses
  5. Apply the Roofline Model to assess the performance of your code.

More information

Dancy Bruijnius