Motivation et Projets en cours
Motivation
En physique des hautes énergies, nous avons vécu un long règne des grilles de calcul, où nous pratiquions du “parallélisme embarrassant”, consistant à distribuer nos lots d’évènements à des milliers/millions de coeurs, chacun faisant tourner des programmes séquentiels isolés. Mais le matériel change, vers toujours plus de coeurs (et moins de mémoire par coeur), des vecteurs toujours plus longs, et un mélange de coeurs toujours plus hétérogènes et spécialisés (CPU/GPU/FPGA). L’évolution du matériel informatique est telle que notre modèle de calcul n’est plus approprié, et qu’il nous faut abandonner l’approche séquentielle au profit d’une approche parallèle sous toutes ses formes : multi-threading, vectorisation, mémoire distribuée, GPGPU… Nos logiciels doivent s’adapter à allure forcée, et nos physiciens se retrouvent sommés d’écrire du code “thread-safe”, fonctionnel, vectoriel.
Bien sûr, les collaborations de notre discipline font toutes de la R&D ciblée sur cette thématique, mais les ressources humaines impliquées sont notoirement insuffisantes, en regard de l’effort colossal à produire pour revisiter l’ensemble de notre patrimoine logiciel et former tous ceux qui contribuent à ce logiciel ; un effort comparable à ce qu’a été le passage à la programmation orientée objet. Il est vital pour nos disciplines de croiser les expérimations et de grouper les efforts. Par ailleurs, nous avons beaucoup à gagner à nous rapprocher de la communauté du calcul intensif, dont les problématiques recouvrent beaucoup les nôtres (sans être exactement les mêmes). Pour renforcer une synergie avec cette communauté, attirer les talents et soutenir les thématiques qui nous sont propres, par exemple à travers des thèses co-encadrées, nous avons besoin de mettre mieux en avant notre R&D sur le calcul parallèle.
C’est ce qui explique la volonté de créer plusieurs projets de R&D autour de nos technologies logicielles, et motive l’existence de ce master-projet pour les incuber. Ceci permet de valoriser et coordonner les activités transverses existantes, et favorise une R&D en partenariat avec les laboratoires d’informatique et de mathématiques appliquées.
Porteurs
- 2024-aujourd’hui : Fabrice Jammes.
- 2020-2023 : David Chamont (IJCLab).
- 2017-2020 : Gilles Grasseau (LLR)
Projets en cours
- ComputeOps : projet IN2P3 pour le calcul scientifique en conteneurs.
- Reprises : projet IN2P3 pour un calcul reproductible (vitesse et précision).
Certaines spécificités IN2P3
Nous avons un savoir-faire à apprendre de la communauté du calcul intensif, et en même temps nous apportons nos spécificités et notre point de vue.
- Plutôt que du “calcul intensif” (HPC), focalisé sur la réalisation ponctuelle de très grandes simulations ou traitements, nous pratiquons le “calcul à haut-débit” (HTC), avec l’objectif d’exploiter nos fermes de calcul avec l’efficacité maximale sur un temps long.
- La grille étant constituée de multiples sites, financés par des tutelles différentes et indépendantes, on aboutit à une infrastructure de calcul avec matériel très hétérogène (par opposition aux super-calculateurs). Nous devons donc privilégier les approches logicielles les plus portables.
- Etant donné la durée de vie de plus en plus longue de nos expériences, à opposer aux changements toujours plus rapides dans le monde informatique, nous devons privilégier les approches les plus durables, donc les moins proches du matériel, c’est à dire favoriser les langages de programmation à haut niveau d’abstraction, et/ou les “Domain Specific Languages” (DSLs).
- Après quelques dizaines d’années à pousser dans ses derniers retranchements la programmation orientée objets, nous manipulons des structures de données “naturelles” mais particulièrement inadaptées à la parallélisation. Typiquement, nous avons des tableaux de structures, là ou il faudrait des structures de tableaux.
- Une bonne partie de nos codes sont trop gros (~MLOCs) pour etre migrés intégralement : il faut qu’on puisse migrer les seules sous-parties critiques, au sein d’un ensemble qui reste “traditionnel”. Ou au minimum, il faut pouvoir migrer par étapes. Nous aimerions aussi bénéficier d’outils logiciels pour aider à la migration.
Objectifs et outils généraux
Ce master-projet n’a pas vocation à avoir de lourdes activités et objectifs en propre, mais plutôt de favoriser et d’accueillir les projets de R&D transverses IN2P3 qui s’inscrivent dans ses thématiques.
Nous pouvons dégager quelques préconisations communes qui seront adressées aux projets:
- Parmi la pléthore de technologies logicielles disponibles, privilégier celles qui préservent la portabilité et la durabilité du code et de ses performances.
- S’efforcer de collaborer avec des laboratoires d’informatique et de mathématiques appliquées. Publier avec eux. Rechercher des stagiaires. Imaginer des thèses co-encadrées.
- S’efforcer d’avoir quelques physiciens dans l’équipe. Contribuer à la collection de tutoriels qui servira à diffuser le savoir-faire auprès d’un public technique et physicien le plus large possible. Organiser des sessions collectives en face-à-face.
Par ailleurs, nous essaierons d’organiser des rencontres deux fois par an, sur le modèle de la première journée HPC-HTC de l’IN2P3, qui a réuni une trentaine de personnes qui travaillent déjà sur ces sujets à titre individuel, au sein de l’APC, CC, CPPM, LAPP, LAL, LLR, LPNHE, LUPM, IPHC.
Références
- Hep Software Foundation : http://hepsoftwarefoundation.org/
- AidaInnova WP12: https://aidainnova.web.cern.ch/wp12
- Aida 2020 WP3 : http://aida2020.web.cern.ch/activities/wp3-advanced-software
- ECFA High Luminosity LHC Experiments Workshop - 2016 : https://indico.cern.ch/event/524795/
- Ecole informatique IN2P3 “Parallélisme sur Matériel Hétérogène” : https://indico.in2p3.fr/event/13126/
- SimGrid : https://gitlab.inria.fr/simgrid/simgrid
- GridCL : https://llr.in2p3.fr/projet-gridcl