Orateur
Description
Dans le contexte du calcul haute performance et d'autant plus dans le cas du calcul scientifique et de la physique des hautes énergies, l'ergonomie et la performance du code de calcul sont deux aspects souvent antagonistes
Le code se doit d’être performant au niveau algorithmique et au niveau de son adéquation avec les architectures parallèles modernes. Au niveau ergonomie, il est vital que le code écrit par et pour des scientifiques soit compréhensibles par ces derniers. Afin de bénéficier du meilleur de ces deux aspects, il convient d'utiliser des structures de données de haut niveau et des algorithmes permettant de simplifier le code tout en conservant un haut niveau de performance.
Dans cette présentation, nous allons présenter quelques éléments de C++20 qui permettent de construire de tels composants :
- les concepts, qui permettent de poser des contraintes sur les types et valeurs passés en paramètre d'un template,
- l'évaluation à la compilation, qui a pas mal évolué avec constexpr et consteval.
Nous verrons comment ces éléments peuvent s'intégrer dans un code existant, et comment ils peuvent être combinés pour construire un système de gestion de données numériques multi-dimensionelles simple et efficace.