GPU Programming Part 2: Special and Advanced Topics (training course, online)
Dr. Jan Meinke
(Course no. tba in the training programme 2026 of Forschungszentrum Jülich)
The registration for the course will open on 1 March 2026.
This course will take place as an online event. The link to the streaming platform will be provided to the accepted registrants only. The course will be held in English.
Course Content:
GPU-accelerated computing drives current scientific research. Writing fast numeric algorithms for GPUs offers high application performance by offloading compute-intensive portions of the code to a GPU.
This advanced course will cover special and advanced aspects of GPU architectures and programming. Examples of increasing complexity are used to demonstrate the optimisation and tuning of scientific applications.
The course consists of modules providing more in-depth coverage of multi-GPU programming, modern CUDA concepts, CUDA Fortran, and portable programming models such as OpenACC and C++ parallel STL algorithms:
A) Advanced multi-GPU programming with MPI
B) Advanced multi-GPU programming with NVIDIA Collective Communications Library (NCCL) and NVIDIA Shared Memory (NVSHMEM)
C) Advanced and modern CUDA concepts (Cooperative Groups, CUB Primitives, modern C++ programming)
D) CUDA Fortran and GPU-accelerated standard Fortran or Kokkos for portable GPU programming
E) GPU programming with abstractions (OpenACC, Standard Language Programming (pSTL))
Attendees are invited to pick and choose the parts of the advanced course (A - E) they want to attend. The modules are mostly freestanding.
Note: If you want to learn the basics of GPU programming, there is a separate course GPU Programming Part 1: Foundation. It includes an introduction to GPU/parallel computing, programming with CUDA, GPU libraries, tools for debugging and profiling, and performance optimisations. It will take place 24.03.-26.03.2026 on-site at JSC. Please visit GPU Programming Part 1: Foundations for more information and to register.
Prerequisites:
Participants either need to attend the course GPU Programming Part 1: Foundations first or prove equivalent knowledge of GPU programming in order to participate in this advanced course.
Programmers interested primarily in OpenACC may skip parts D and E of the "Foundations" course and still choose part E from the "Special and Advanced Topics" course. Participation in the full "Foundations" course, however, is recommended.
Some knowledge about Linux, e.g. make, command line editor, Linux shell, experience in C/C++ is also required.
A personal institutional email address (university/research institution, government agency, organisation, or company) is required to register for JSC training courses. If you don't have an institutional email address, please get in touch with the contact person for this course.
Target Audience:
Scientists who want to improve their use of GPU systems
Language:
This course is given in English.
Duration:
5 half days
Dates:
29.06.-03.07.2026, 09:00-13:00 each day
Venue:
Online
Number of Participants:
Maximum 30
Instructors:
Jan Meinke, Andreas Herten, Kaveh Haghighi-Mood, Jayesh Badwaik (JSC)
Laura Morgenstern, Markus Hrywniak (NVIDIA)
Registration:
The registration for the course will open on 1 March 2026.