This page was translated by an AI (LLM) with a cursory human check and is awaiting full review.

Training: Introduction to Kokkos (CPU and GPU Programming)
Manager: Juan José Silva Cuevas
Instructors: 2 Engineers from the CExA team, Juan José Silva Cuevas
This course introduces the basics of Kokkos on CPU and GPU. It is aimed at beginners who wish to develop their first programme using fundamental data structures, parallel loops, and parallel reductions.
- Target audience
- Prerequisites
- Duration and terms
- Course content
- Course materials
- Upcoming sessions
Target audience
This course is aimed at beginners and introduces the basics of Kokkos programming on CPU and GPU. You will learn how to compile Kokkos and develop your first programme using fundamental data structures, parallel loops, and parallel reductions.
Duration and terms
This training lasts 3 days:
- from 09:30 (welcome from 9:00) to 17:00 (latest)
It takes place in person only at the IDRIS premises in Orsay (91).
Assistance
Minimum: 8 people; Maximum: 20 people.
Context
Performance portability refers to the ability of computer programmes and applications to run efficiently across multiple platforms. Developers aim to ensure this compatibility without sacrificing performance, while limiting platform-specific code. This skill is particularly sought after in the field of high-performance computing (HPC). It remains essential in the face of the rapid evolution of computer architectures, which risks rendering current applications obsolete. Performance portability assumes that a single source code remains efficient on new architectures. The increasing diversity of hardware requires developing software compatible with a wide range of machines to ensure their longevity and relevance.
Kokkos is an open-source C++ programming model designed to ensure the portability and performance of applications across all major HPC platforms. Kokkos Core provides abstractions for executing parallel loops and managing data, facilitating the development of efficient applications. As backends, Kokkos currently supports OpenMP for CPUs, and CUDA, HIP, and SYCL for GPUs.
Course content
The following topics will be covered during the training:
- Kokkos basics
- Getting started with Kokkos
- Data containers
- Parallel loops
- Customising loop policies
- Parallel reductions
- Function annotations
- Atomic operations
- Kokkos algorithmic API
- SIMD vectorisation
- Debugging and profiling
For efficient execution of the practical work, these will take place on the Jean Zay supercomputer. A workstation with access to the IDRIS supercomputer is provided for learners. Prior experience using a supercomputer, as well as prior access to one, is not required.
Course materials
The course materials in English are available on the CExA project’s GitHub repository:
To view the dates of upcoming sessions for this training, visit the following page:
Registration
CNRS/EPSCP/French university staff | External participants |
Are you a member of CNRS, a French university, or a public scientific, cultural, and professional establishment (EPSCP)? Your registration is free via our server. | Our training courses are open to all professionals from companies, public bodies, and individuals. |