Suivez

la liste

Ce stage s'inscrit dans le cadre d'une collaboration entre IJCLab (Orsay) et Télécom SudParis
(Palaiseau), autour de la programmation parallèle et hétérogène durable.
Le stagiaire devra porter vers SYCL des composants d'une application de physique des
particules (ACTS), en vue de la faire exécuter sur des GPUs. Il devra plus particulièrement
profiler les échanges de données entre CPU et GPU, et optimiser ces derniers.

Contexte scientifique et technique
Dans le champ du calcul scientifique, le matériel a une durée de vie approximative de 5 ans, là
où une application va typiquement servir pendant 20 ou 30 ans. Nous sommes dans une
période ou chaque nouvelle génération de matériel est très différente de la précédente, et la
communauté scientifique n'a pas les ressources humaines nécessaires pour réadapter en
permanence ses applications. Ceci nous amène à rechercher des solutions logicielles qui
favorisent une meilleure durabilité du code.
Parmi les nouveautés matérielles, l'émergence des accélérateurs (GPUs) apporte des
questionnements sur les échanges de données entre ces derniers et les processeurs généraux
(CPUs), ainsi que sur la pertinence de regrouper ou non les accélérateurs dans des serveurs
spécialisés. On s'attend à ce que les réponses dépendent fortement des applications.
Cette problématique vaut pour la bibliothèque logicielle ACTS, à laquelle contribuent des
chercheurs et ingénieurs d'IJCLab. Cette bibliothèque est dédiée à l'analyse des données issues
du Large Hadron Collider (LHC) du CERN, en particulier la reconstruction des trajectoires des
particules à partir des dépôts ponctuels mesurés.

Travail à réaliser dans le cadre du stage
Après avoir étudier les cas d'utilisation d'ACTS sélectionnés par l'équipe d'IJCLab, ainsi que la
technologie SYCL, le stagiaire procédera au portage vers SYCL du code qui le nécessite, et
s'assurera que les résultats physiques restent valides.
Dans un deuxième temps, le stagiaire exécutera et comparera plusieurs cas d'utilisation et/ou
plusieurs modèles de GPU. A chaque fois, il profilera les échanges de données entre processeur
et accélérateur, et comparera le comportement du code ACTS dans ces différentes conditions.
Il évaluera également la portabilité et les fonctionnalités des outils de profilage eux-mêmes.
Enfin, on attend du stagiaire qu'il propose et implante des améliorations portable du code,
notamment à propos des échanges de données, avec l'aide de l'équipe PDS.

Perspective de doctorat
Un doctorat est envisageable, en co-tutelle avec les mêmes équipes, sur la problématique du
placement optimal des accélérateurs dans une grappe de calcul, et l'arbitrage entre transferts
de données et remplissage de ces accélérateurs. Pour quel type d'applications est-il préférable
de les distribuer dans tous les noeuds de calcul ? Pour quel type d'applications est-il préférable
de regrouper les accélérateurs dans des noeuds spécialisés (GPU as a Service) ?

Connaissances requises
Langage de programmation impératif et/ou objet (C++, Fortran, Python...).
Notions de calcul parallèle et sur GPU.
Pratique de Linux.
Mot-clefs
SYCL, C++, GPU, ACTS, Reconstruction de traces, Physique des particules.
Lieu
Dans le respect des contraintes liées au COVID, le stage s'effectuera au sein d'IJCLab,
département informatique, à Orsay, ainsi qu'à Télécom Sud-Paris, équipe PDS, à Palaiseau.
Gratification & ZRR
Le CNRS rémunère les stages à hauteur de 591,51 euros bruts mensuels. Par ailleurs, IJCLab
étant ZRR, l'accueil du stagiaire est soumis à l'approbation du fonctionnaire de défense.
Equipe encadrante
David Chamont, david.chamont@ijclab.in2p3.fr
Elisabeth Brunet, elisabeth.brunet@telecom-sudparis.eu
Hadrien Grasland, hadrien.grasland@ijclab.in2p3.fr.
Gael Thomas, gael.thomas@telecom-sudparis.eu.

Liens :
SYCL (https://www.sycl.tech/)
ACTS (https://acts.readthedocs.io/)
IJCLab, Service Développement (https://www.ijclab.in2p3.fr/pole-ingenierie/informatique-2/)
Telecom SudParis, Equipe PDS (https://www-inf.telecom-sudparis.eu/departement/pds/)