Overview
In this 4-day online workshop you will learn how to accelerate your applications with OpenACC, OpenMP, CUDA C++, and Kokkos on NVIDIA GPUs.
The lectures are interleaved with many hands-on sessions using the JupyterHub at NHR@FAU to access the Alex cluster.
The workshop is co-organised by Leibniz Supercomputing Centre (LRZ) and Erlangen National High Performance Computing Center (NHR@FAU).
Agenda
1st day: Fundamentals of Accelerated Computing with OpenACC
Learn the basics of OpenACC, a high-level programming language for programming on GPUs. This lecture is for anyone with some C/C++ of Fortran experience who is interested in accelerating the performance of their applications beyond the limits of CPU-only programming. In this lecture, you’ll learn how to profile and optimise your CPU-only applications to identify hot spots for acceleration, how to use OpenACC directives to GPU accelerate your codebase, and how to optimise data movement between the CPU and GPU accelerator. Upon completion, you'll be ready to use OpenACC to GPU accelerate CPU-only applications.
2nd day Morning Session: Fundamentals of Accelerated Computing with OpenMP
Learn the basics of GPU programming using OpenMP directives. This lecture covers the OpenMP offloading model, including parallelism, data mapping, and memory management.
2nd day Afternoon Session and 3rd day: Fundamentals of Accelerated Computing with CUDA C/C++
This lecture teaches the fundamental tools and techniques for accelerating C/C++ applications to run on massively parallel GPUs with CUDA. You’ll learn how to write code, configure code parallelisation with CUDA, optimise memory migration between the CPU and GPU accelerator, and implement the workflow that you’ve learned. At the end of the lecture, you will be able to create new GPU-accelerated applications on your own.
4th day: Fundamentals of Accelerated Computing with Kokkos
This lecture teaches GPU programming with Kokkos, a modern C++ library for performance-portable parallel computing. Participants will learn to implement algorithms efficiently on GPUs, leverage parallelism, and optimise memory access to maximise performance.
Prerequisites
OpenACC/OpenMP:
- Basic C/C++ or Fortran competency, including familiarity with variable types, loops, conditional statements, functions, and array manipulations.
- No previous knowledge of OpenACC or OpenMP programming is assumed.
CUDA/Kokkos:
- Basic C++ competency, including familiarity with variable types, loops, conditional statements, functions, and array manipulations.
- No previous knowledge of CUDA or Kokkos programming is assumed.
Hands-On
The lectures are interleaved with many hands-on sessions using the JupyterHub at NHR@FAU to access the Alex cluster.
Language
English
Lecturers
Dr. Momme Allalen, Dr. Sajjad Azizi, Dr. Volker Weinberg (all LRZ), Dr. Sebastian Kuckuk (NHR@FAU)
Prices and Eligibility
The course is open and free of charge for people from academia and industry affiliated with an institution in the Member States of the European Union or Associated/Other Countries to the Horizon 2020 programme.
Registration
Please register with your official e-mail address to prove your affiliation.
Withdrawal Policy
See Withdrawal
Fees
Free of charge