Du
Horaire
Lieu LISN Site Plaine
AAC, Thèses et HDR
Orateur : Sylvain JOUBE
Pour la communauté scientifique, et quel qu’en soit le domaine, les besoins en puissance de calcul et capacité de stockage n’ont de cesse de croître. Par exemple, au CERN, la prochaine mise à niveau du LHC à haute luminosité, conçue pour mieux comprendre notre univers, devrait augmenter ses besoins d’au moins un ordre de grandeur au cours de la prochaine décennie. Plus généralement, cela signifie que la science progresse désormais au rythme de la puissance de calcul disponible. Les nouvelles avancées matérielles et logicielles se font souvent au détriment de la facilité de programmation. Cette thèse aborde les techniques de pointe permettant d’abstraire la complexité du matériel tout en conservant les performances nécessaires aux applications scientifiques. Elle se base sur Kiwaku, une bibliothèque C++ fournissant des conteneurs multidimensionnels et des algorithmes de parcours, fondamentaux pour la communauté scientifique.
Nombreux sont les domaines scientifiques qui ont de plus en plus recours à des infrastructures de calcul multi-sites, et se trouvent confrontés à une grande variété de matériel dont une part croissante d’accélérateurs GPU. La physique des particules n’y fait pas exception, et n’a de cesse de diversifier ses infrastructures avec grilles de calcul, supercalculateurs, clouds publics et privés. Il devient donc toujours plus complexe de développer des applications logicielles capables d’exploiter pleinement le matériel présent sur tous ces sites avec des performances réellement portables. Face à ces défis, le monde universitaire et l’industrie se sont organisés autour de standards, et ont proposé plusieurs bibliothèques logicielles. Cependant, ces bibliothèques peinent à prendre en charge de manière durable la diversité et l’évolution rapide du matériel. Face à ce constat, et grâce au C++ moderne et à des principes de programmation générique avancés, nous présentons ici la nouvelle bibliothèque Kiwaku qui offre des conteneurs multidimensionnels et des algorithmes de parcours facilement adaptables à différents contextes d’exécution, tout en offrant des performances portables comparables à celles d’un code optimisé au cas par cas.