OpenMP is a portable and scalable parallel programming model that gives programmers a flexible interface for directive-based programming of shared-memory parallel machines. Used in conjunction with MPI, OpenMP can enable scientific software to be scaled up to large supercomputers. Since version 4.0, OpenMP supports offloading to accelerator devices such as GPUs and thus provides developers with a single framework that can be used across existing and future GPU devices from multiple vendors.
This workshop, split over two half days, will focus on OpenMP usage and performance tuning for both conventional threadings on CPUs as well as offloading on GPUs.
A short overview of the Intel oneAPI Toolkits will be given. Compiler options are crucial for optimal performance and thus a short introduction to optimization flags will be provided. Typical OpenMP patterns will be discussed and presented as templates for user applications. As threading errors can be hard to find, a correctness checking tool that finds real and potential threading errors will be introduced. Finally, performance bottlenecks will be discussed and methods to detect them will be introduced.
Participants will be provided with exercises and instructions to run tutorials on the Intel Devcloud (https://software.intel.com/content/www/us/en/develop/tools/devcloud.html) during and after the workshop.
The workshop will be followed by an online OpenMP hackathon on June 8-9 where invited teams of researchers and developers can get help from expert mentors to implement or optimise OpenMP in their own HPC software. If this sounds interesting, have a look at the event page at [LINK]!
After attending this workshop, you will have learned:
Basic understanding of parallel programming paradigms and C/C++ or Fortran programming.
For updated agenda check the event's webpage: