NERSCPowering Scientific Discovery for 50 Years

Performance Portability Series: Kokkos Training, Apr 25-26, 2024

April 25, 2024


The Kokkos training session presented by the Kokkos team, is part of the Performance Portability training series. This series, offered by OLCF, NERSC, and ALCF, features training sessions on various performance portable programming solutions to help ease developer transitions between current and emerging high-performance computing (HPC) systems, such as the NERSC Perlmutter, OLCF Frontier, and ALCF Aurora featuring NVIDIA-, AMD-, and Intel-based GPUs, respectively.

Time: 9:00 am - 12:00 pm (Pacific time), Thursday-Friday, April 25-26 (online only)


Kokkos is a C++-based programming model for writing performance portable applications targeting all major HPC platforms.
The key feature of Kokkos is the ability to abstract away the underlying hardware architecture and allow you to write a single source code that can run on a variety of platforms efficiently.

The Kokkos team would present a 2-day (3-hour each) hands-on training series to help new and existing Kokkos users understand parallel programming abstractions and ways to expose them using the framework. The first day of the training will be focused on new users who are trying to use Kokkos to write portable parallel code that can take advantage of both CPU and GPU nodes of Perlmutter. On the second day, the training will focus on advanced concepts in Kokkos or if the users wish to discuss porting or optimizing their existing codes to Kokkos, a group of experienced Kokkos developers will be available for individual sessions.


This event will be presented online only using Zoom.  Registration is required for remote participation. Please register here.


There are two sessions each day with presentations and hands-on exercises.

Day 1 New Users

  • Kokkos Introduction and simple parallel patterns -- Rahul Gayatri (NERSC)
  • Kokkos Data abstractions + Execution and Memory Spaces -- Bruno Turcksin (OLCF)

Day 1 Advanced Users

  • Hierarchical Parallelism -- DongHun Lee (Sandia National Lab)
  • Scratch Memory -- Conrad Clevenger (Sandia National Lab)
  • Reductions -- Daniel Arndt (OLCF)

Day 2 New Users

  • Multi-dimensional Range parallelism -- Rahul Gayatri (NERSC)
  • Hierarchical Parallelism -- Bruno Turcksin (OLCF)

Day 2 Advanced Users

  • Kokkos Tools -- Vivek Kale (Sandia National Lab), John Mellor-Crummey (Rice University), Kevin Huck (University of Oregon), Sameer Shende (University of Oregon), Daniel Arndt (OLCF)

Presentation Materials