An introduction to shared memory parallel programming using OpenMP, 12 - 14 September 2023

An introduction to shared memory parallel programming using OpenMP, 12 - 14 September 2023

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, HPC2N and within NAISS.

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
  • Reductions
  • Avoiding data access conflicts and race conditions
  • Performance considerations for non-uniform memory access hardware (e.g. nodes of NAISS and University owned HPC clusters)
  • Introduction to OpenMP tasks

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

Eligibility

Delivery of this course is a collaborative effort between HPC2N and LUNARC.  The course is part of the NAISS training program.  The course is open to users and prospective users of NAISS, HPC2N, LUNARC as well as Swedish academics in general.

Pre-requisites

Participants should be able to program in either of C, C++ or Fortran at an intermediate level. No prior experience in parallel computing is required.

The instructors

The course will be taught by consultants from HPC2N and LUNARC.

Time and location

The course will be online.  Course times are as follows:

  • 12th September 2023, 09:00-12:00 and 13:00-15:00
  • 13th September 2023, 09:00-12:00 and 13:00-15:00
  • 14th September 2023, 09:00-12:00 and 13:00-15:00

Registration

Registration will be done through the LUNARC version of this course page. Registration closes 28th August 2023.

Questions

Questions regarding this course should be directed to LUNARC.

Updated: 2024-12-12, 13:22