Introduction to OpenMP

Course Description

OpenMP is a widely supported standard for parallelizing shared-memory C/C++ and Fortran applications. It offers a simple, low-barrier entry to thread-based parallelization. This course introduces the fundamental concepts and constructs of OpenMP, as well as advanced topics like tasking and accelerator offloading.

Learning Objectives

OpenMP is a standard for parallelizing shared-memory C, C++, and Fortran applications. Supported by major compilers, it offers a simple, low-barrier entry to thread-based parallelization.

This course introduces the fundamentals of OpenMP, including:

  • Basic OpenMP concepts
  • Directives and runtime functions
  • Parallel regions
  • Managing private and shared data
  • Parallelizing loops
  • Synchronization techniques

Building on these basics, the course also explores advanced topics, such as:

  • Thread affinity and memory locality
  • Programming for ccNUMA systems
  • Task-based shared-memory parallelization
  • Single Instruction Multiple Data (SIMD) programming
  • Accelerator programming using offloading

Participants will follow live demonstrations and conduct hands-on exercises using the NHR@FAU clusters, gaining practical experience to reinforce the concepts learned.

Certification

A digital certificate of attendance will be awarded to all participants who attended the majority of the course.

Prerequisites

Participants should meet the following requirements:

  • A basic understanding of programming in C, C++, or Fortran (note: most code examples will use C++).
  • Familiarity with compiling applications using a command-line compiler.

Upcoming Iterations and Additional Courses

You can find dates and registration links for this and other upcoming NHR@FAU courses at https://go-nhr.de/trainings .