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. The teaching language will be English. 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
- 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 course is open to users and prospective users from all six SNIC HPC centres. It is part of the SNIC coordinated training in HPC.
Participants should be able to program in either of C, C++ or Fortran at an intermediate level.
Participants are requested to bring a laptop. The laptop needs to be able to:
- Access the internet via Eduroam. Internet access via Eduroam needs to be activated at your home institution prior to attending the course
- Run the client software for the Lunarc HPC desktop. To do so participants need to be able to install software on their laptop. It is preferable to install the client prior to attending the workshop.
To access Lunarc systems a mobile phone is required to receive one-time-passwords. Smart-phone users should install the Pocket Pass authenticator on their phone.
Joachim Hein is a researcher in the centre of Mathematical Sciences at Lund University and the SNIC parallel expert based at Lunarc, the center 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 be held on the LTH campus of Lund University. Course times are as follows:
- 29 May 2018, 09:00-17:00
- 30 May 2018, 09:00-17:00
When registering, please make sure you provide a working mobile number to be able to receive SMS on the day of the course.
Questions regarding this course should be directed to Lunarc using the support form.