Introduction to multithreading and OpenMP

Introduction to shared-memory parallel programming and optimization on modern multicore systems, focusing on OpenMP

OpenMP is the dominant shared-memory programming model in computational science.


Tuesday-Wednesday 22-23 May 2018 from 9:00 to 17:00

Topics covered

Parallelism, multicore architecture and the most important shared-memory programming models are discussed. These topics are then applied in the hands-on exercises.


Day 1

  • [09:00 - 9:45] Introduction to OpenMP
  • [09:45 - 10:30] 1st exercise session
  • [10:30 - 11:15] Simple Work Sharing, Data Scoping and Synchronization
  • [11:15 - 12:15] 2nd exercise session
  • [12:15 - 13:00] lunch break
  • [13:00 - 14:15] Reductions; More on work sharing; Thread-private variables
  • [14:15 - 15:30] 3rd exercise session
  • [15:30 - 16:15] Vectorization (SIMD)
  • [16:15 - 17:00] 4th exercise session

Day 2

  • [09:00 - 10:00] Synchronization constructs and program correctness
  • [10:00 - 11:00] 5th exercise session
  • [11:00 - 12:00] Tasking
  • [12:00 - 12:45] lunch break
  • [12:45 - 13:45] 6th exercise session
  • [13:45 - 15:15] Architectural Performance issues: Affinity, False Sharing
  • [15:15 - 16:15] 7th exercise session
  • [16:15 - 17:00] Architectural Performance issues: Exploiting bandwidth


Multimediaroom, building S9, Campus De Sterre, Krijgslaan 281, 9000 Gent

A sandwich lunch will be provided, along with water & coffee/tea, for all registered attendees (free of charge).

Organization and trainer

Workshop organised in collaboration with Flemish Supercomputing Center (VSC), all Flemish Universities and their Doctoral Schools.

Lecturer is Dr. Reinhold Bader

Reinhold studied physics and mathematics at the Ludwigs-Maximilians University in Munich, completing his studies with a PhD in theoretical solid-state physics in 1998. Since the beginning of 1999, he has worked at Leibniz Supercomputing Centre (LRZ) as a member of the scientific staff, being involved in HPC user support, procurements of new systems, benchmarking of prototypes in the context of the PRACE project, courses for parallel programming, and configuration management for the HPC systems deployed at LRZ. He is currently group leader of the HPC services group at LRZ, which is responsible for operation of all HPC-related systems and system software packages at LRZ.


Follow this link to register for the next session:

Target audience

This workshop is especially targeting PhD students.

Postdocs, staff members or non-academic interested parties can also participate depending on availability.

Priority will be given to PhD students.

Course prerequisites

Participants should be able to work on the Unix/Linux command line, have a minimal level of programming skills (Fortran or C), and have a general understanding of computer architecture.

Participants are strongly encouraged:

  • to bring their own laptop, which is able to connect to the WiFi (eduroam)
  • to have an active VSC account and a working public/private ssh key pair

Please follow these instructions to request a VSC account and correctly set up a connection with an SSH key pair

Course material

Presentation slides and exercises will be supplied to participants

(download the presentations from a previous session)

Presentations & exercises are also available on the HPC-UGent infrastructure at /apps/gent/tutorials/openmp/2018

Doctoral Schools Training Program

This course can be followed as part of the Ghent University Doctoral Schools Training Program - specialist courses.

Students should also attend the Introduction to MPI training in order to include both in their curriculum as one specialist course.

When this condition is met, the course will be automatically added to the curriculum of the participating PhD students.

All participants can receive a certificate of attendance upon request via .