Achieving genericity, performance, and expressivity in code at the same time can be incredibly hard. In many instances, developers are left with a choice between using super clean and super slow software libraries or relying on extremely optimized but unmaintainable monstrosities. Over the years, Domain Specific Languages (DSLs) have been investigated as a way to overcome this problem. In particular, Embedded DSLs (EDSLs) have been developed to explore this solution while removing the need for third-party, specialized compilers. In this talk, I will discuss how leveraging Embedded Domain Specific Languages can help reduce software complexity while creating a challenge for modern compilers. I will describe what has been learned from the development of metabenchmark, a lightweight C++ library that has been designed to bring compilers to their knees and study their performance in worst-case scenarios. I will analyze some of the benchmark results and present how performance can vary a lot amongst modern compiler toolchains. I will then discuss what it means in practice for the development of metaprograms and EDSLs in C++. Finally, I will conclude by presenting some directions of research to improve current compilers and discuss what it means in the particular case of C++ evolution.
Vincent Reverdy is a full researcher in computer science and numerical astrophysics at the Laboratoire d'Annecy de Physique des Particules, in the French Alps with affiliations to the Paris Observatory and NCSA. After a PhD in numerical cosmology at the Paris Observatory on the propagation of light in large-scale cosmological structures, he joined the Astronomy Department of UIUC in 2015 where he led an interdisciplinary research group in computer science and astrophysics. In 2019 he moved back to Paris at Ecole Normale Superieure to work on optimal transport algorithms. In 2021 he finally joined the French National Centre for Scientific Research (CNRS) in Annecy to provide computer science insights to the LSST/Rubin Observatory collaboration. His main research interests revolve around the problem of software complexity in computational sciences both from theoretical and practical standpoints. This includes the development of algorithms and numerical methods for computational astrophysics as well as work on programming languages, type theory, and software architecture. On top of his research activities Vincent has been a member of the French delegation to the C++ standardization committee for years where he has been focusing on high-performance computing, mathematics, metaprogramming, and low-level optimization.