An introduction to shared memory parallel programming using OpenMP 27-28 November 2019

OpenMP provides an efficient method to write parallel programs in C, C++ and Fortran. OpenMP programs are suitable for execution on shared memory architectures such as modern multi core systems or a single compute node of the HPC clusters deployed by Lunarc and within SNIC.

This course will introduce participants to the shared-memory model for parallel programming and the OpenMP application-programming interface. In many cases OpenMP allows an existing serial program to be upgraded incrementally, starting with the parallelisation of the most time-consuming parts of the code. Typically OpenMP programs are easily ported from one shared memory multi processor system to another one.

The course consists of lectures alternating with practical sessions. No prior experience in parallel computing is required. Participants are however expected to be able to write serial programs in C, C++ or Fortran. The course contents includes:

  • Shared memory programming concepts,
  • Syntax of the OpenMP API,
  • Parallel and serial regions,
  • Shared and private data,
  • Workshare constructs and scheduling,
  • Reductions,
  • Avoiding data access conflicts and race conditions,
  • Performance considerations for non-uniform memory access hardware (e.g. nodes of SNIC HPC clusters).

At the end of the course participants should have the ability to parallelise many of the computational kernels used in scientific codes.

The teaching language will be English.


The course forms part of the SNIC coordinated training in HPC. It is open to users from all six SNIC HPC centres and academics throughout the Nordic region.


Participants should be able to write simple programs in either of C, C++ or Fortran.

For the hand-on practicals participants should bring a laptop. The laptop should be able to access the internet via eduroam (needs to be arranged in your home institution) and have a ssh-client installed.

All participants should register in the SUPR-portal prior to the course start (more info will be sent out to registered participants prior to course start).

The lecturer

Joachim Hein is a researcher in the centre of Mathematical Sciences at Lund University and the SNIC parallel expert based at LUNARC, the centre for scientific and technical computing for research at Lund University. He has over than 20 years experience in parallel computing.

Time and location

The course will run from the 27th to 28th of November, 2019. The course will start at 09:00 and finish at 17:00 each day.

The course will be held at the Johanneberg campus of Chalmers University of Technology in the room "Raven and the Fox" (Forskarhuset Fysik, entrance from Fysikgränd 3, floor 5).


To register, please fill in the registration form:

Registration form.


Questions and queries regarding the course should be directed to C3SE-support.