Vir's blog — go fast with readable code!

there's too much unused parallelism on a single core

Dr. Matthias Kretz

Matthias Kretz

Senior Software Engineer and SIMD/C++ Standardization Lead
Husband — Father — Nerd — Athlete

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.

Research & Implementation Interests

Research Vision

Data-parallel types express data parallelism in general—they are not bound to CPUs with SIMD instructions. The same abstraction could translate to GPU execution or other parallel architectures. Achieving this requires novel compiler interactions to maintain the abstraction while exposing architecture-specific performance characteristics.

Selected Publications

Honors & Awards

Software Projects

When I still had time for KDE:

Connect