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:
– Load imbalance
– False sharing
– Non-uniform memory accesses
5. Apply the Roofline Model to assess the performance of your code.
## Prerequisites
– Command line and DelftBlue basics
– C, C++ or Fortran
## Content level
40% Beginner, 30% intermediate, 30% advanced
One day course
30 max. participants
Teachers:
D. Palagin
L. Laguarda-Sanchez
R. van Nooijen
Costs:
€100,-
€25,- for BSc and MSc students.
including lunch and course materials, free for DCSE members.
Location:
Penguinlab, EWI B36.HB.2.130
Prerequisites:
Command line and DelftBlue basics
C, C++ or Fortran
Note:
Exercises will be carried out on DelftBlue.
You can either bring your own laptop or use one of the lab computers as a terminal.
External partiticipants without a NetID can do the exercises on their laptop or a lab computer.