CMAKE mark only

Best Modern CMake Practices and Performance Portability with CMake and Kokkos

February 24 - 25, 2026

Remote

LANL/NERSC/ALCF are co-hosting an advanced hands-on CMake Training, presented by Kitware staff. 

What is CMake

CMake is an open-source, cross-platform family of tools designed to build, test, and package software. CMake is used to control the software compilation process using simple platform and compiler-independent configuration files, and generating native makefiles and workspaces that can be used in the compiler environment of your choice. The suite of CMake tools is part of Kitware’s collection of commercially supported open-source platforms for software development.

Why you should attend the course

The course will begin with a brief introduction to CMake, along with a refresher on writing maintainable CMake build systems to ensure that everyone attending is up to date. The course will then progress to Modern CMake best practices, including covering generator expressions, installing targets, and tips to improve your CMake scripts. Finally, the course will cover portable GPU programming with CMake and Kokkos, and then there will be time at the end of the course for an open question and answer session.

Course design

The CMake course is designed to be interactive, meaning there will be a mix of theory and application with a set of tutorials and exercises, as well as ongoing dialogue between instructors and attendees, and opportunities for Q&A throughout the sessions. 

Agenda

Tuesday 2/24 and Wednesday 2/25, 10:00 am - 2:00 pm Pacific Time

  • Brief introduction / refresher on writing maintainable CMake build systems
  • Modern CMake best practices
  • Portable GPU programming with CMake and Kokkos
  • Open Q&A session

Prerequirements

  • NERSC, ALCF, and LANL users, please read the following instructions:
    • NERSC: Current NERSC users will user Perlmutter for any hands-on exercises. More information on CMake and Kokkos on Perlmutter can be found in the documentation.
    • ALCF: Current ALCF users will be given access to Aurora for any hands-on exercises. More information on CMake and Kokkos on Aurora can be found in the documentation.
    • LANL: Current LANL users can use either their HPC accounts or laptops (see below for installing software on laptops).
  • For other users, please notice that no training accounts will be provided for the training.
    • If you do not have access to a CMake environment from your own HPC center, we recommend that you install CMake version 3.22 or newer and C/C++ compilers on your personal computer.
    • You can download CMake from https://cmake.org/download/ or your package manager of choice. On Windows, Visual Studio ships with CMake pre-installed.
    • Below are some reasonable defaults for C/C++ compilers based on the host operating system:
      • Windows: Visual Studio
      • MacOS: XCode
      • Linux: gcc or clang

Acknowledgments

The training is funded by Argonne National Laboratory, Los Alamos National Laboratory, and NERSC; however, employees from all laboratories are welcome to attend.

How to Attend

Please register here. Participants will be added to a calendar event that includes the meeting room and zoom link closer to the event.