Composabilité de drivers au sein de NewMadeleine
Résumé
Ce stage a été réalisé au sein de l'équipe TADAAM de l'Inria Bordeaux, spécialisée dans le calcul haute performance (HPC) et la gestion des communications réseau à grande échelle. L'équipe développe notamment la bibliothèque NewMadeleine, qui fournit un support efficace de communication inter-processus pour les applications parallèles et repose sur un modèle de programmation événementielle et de messages actifs.
Dans sa version actuelle, NewMadeleine intègre plusieurs stratégies de communication (multi-rail, ordonnancement, optimisation selon le type de données). Toutefois, celles-ci ne sont pas conçues pour être composables : il est donc nécessaire d'en choisir une seule, ce qui limite la flexibilité et les performances des applications parallèles modernes. L'objectif du stage était d'introduire la composabilité des stratégies via la création de drivers virtuels, interposés entre le coeur de la bibliothèque et les drivers physiques, tout en réutilisant l'interface générique Minidriver.
Le travail a suivi une approche incrémentale :
1. Développement d'un premier driver virtuel « identité », validant l'interposition d'un composant supplémentaire. 2. Conception du driver duo, jouant le rôle de composant de décision et capable de choisir automatiquement le sous-driver le plus adapté en fonction de la disposition mémoire des données (contiguës ou non). 3. Réimplémentation de la stratégie multi-rail sous forme de driver virtuel, afin de permettre sa combinaison avec d'autres stratégies.
Chaque étape a nécessité des adaptations internes, notamment sur la structure de rendez-vous data, enrichie pour transmettre des informations supplémentaires sur la représentation mémoire des données. La validation a été assurée par une campagne de tests unitaires et de benchmarks sur différentes configurations (TCP, InfiniBand).
Les résultats obtenus montrent que : -le driver duo sélectionne correctement le sous-driver le plus adapté (rcache pour données contiguës, lr2 pour données non contiguës), -le driver multi-rail exploite efficacement deux cartes réseau et améliore le débit pour les communications volumineuses. Ainsi, les objectifs initiaux sont atteints : il est désormais possible d'associer dynamiquement plusieurs stratégies au sein de NewMadeleine. Cette modularité ouvre la voie à de nouvelles optimisations, comme la mise en place de drivers combinant priorités, multi-rail et adaptation aux données.
Domaines
| Origine | Fichiers produits par l'(les) auteur(s) |
|---|---|
| Licence |