From Bits to Speed: Modern C++ for High-Performance Scientific Computing
by ,
Abstract
This course teaches how to write modern C++ code that is fast, readable, and maintainable — skills essential for Research Software Engineering in High-Energy Physics. Rather than cataloguing language features, the course focuses on patterns and design principles: how to choose the right level of abstraction so that code clearly expresses intent, remains understandable to its authors years later, and gives the compiler the semantic information it needs to generate efficient machine code.
Participants will work through discovery-driven exercises covering tooling (compiler flags, profiling, disassembly), hardware-aware software design (caches, memory access patterns, instruction-level parallelism), and SIMD vectorization with std::simd.
The goal is to develop an intuition for judging whether code is maintainable, and gain practical experience measuring and optimizing real scientific workloads. Prior C++ experience is expected; no prior SIMD or assembly knowledge is required.
Lecturer Biography
I am a Senior Software Engineer at GSI Helmholtzzentrum für Schwerionenforschung in Darmstadt, Germany, and chair of WG21 SG6 (Numerics). With over a decade of contribution to the C++ standardization process, my work spans from contributions to KDE to leading the development of std::simd for C++ and its implementation in GCC.
I aspire for efficiency by removing complexity - from making computers accessible through KDE to enabling scientists to write high-performance code without wrestling with vectorization details. I recognize that every abstraction adds its own complexity, but believe in shifting it to where it matters most: compile-time verification rather than runtime surprises.
My research evolved from using SIMD for track reconstruction at CERN to SIMD types (including my PhD work), leading to my contribution of std::experimental::simd to the Parallelism TS and its eventual inclusion as std::simd into C++26. I implement and maintain these in GCC, making my work accessible out-of-the box to most scientists. I focus my language design efforts on std::simd and related numerics topics due to the specialized nature of this work. You can find all my WG21 papers by searching for “Kretz” at open-std.org or explore the repository at wg21-papers. There is also my talk from CppCon 2023: std::simd — How to Express Inherent Parallelism Efficiently via Data-Parallel Types.
More info: https://mattkretz.github.io/about