Performance and portability optimisation of HPC applications using PGAS models
Pour répondre aux besoins croissants en calculs scientifiques (modélisation météorologique, dynamique moléculaire, ...), les clusters de calcul haute performance (HPC) se sont développés. Les clusters HPC sont composés de plusieurs nœuds de calcul interconnectés via un réseau haute performance. Grâce au parallélisme, les calculs sont répartis entre ces noeuds, chacun traitant un sous-ensemble de la simulation globale, ce qui accélère le traitement. Cette répartition implique des échanges fréquents de données entre les nœuds, entraînant de la latence. MPI (Message Passing Interface) est la norme la plus largement utilisée pour définir ces échanges en HPC. Elle définit différents types de communication, notamment les communications point à point. MPI exploite les mécanismes de communication asynchrone offerts par les plateformes modernes en introduisant les communications unilatérales MPI (MPI OSC). Elle permet à un processus d’accéder directement et de manière asynchrone à la mémoire située sur un processus cible sans nécessiter de coordination explicite de la part de ce dernier. Contrairement aux communications bilatérales point à point traditionnelles, les MPI OSC dissocient les transferts de données et les synchronisations. Comme les communications unilatérales accèdent directement à la mémoire distante, elles réduisent la surcharge de communication et permettent un meilleur chevauchement des communications avec les calculs, leur utilisation peut améliorer les performances des applications. Cependant, leur complexité d’utilisation, notamment la nécessité d’assurer la cohérence de la mémoire pour éviter les conflits de données, constitue un frein important pour les développeurs, qui continuent à privilégier les communications point à point plus simples à utiliser. Notre étude facilite l’usage des communications unilatérales dans les codes MPI grâce à deux solutions: une nouvelle approche de détection des conflits d’accès aux données et un outil de transformation automatique. Nous améliorons tout d’abord la mise à l’échelle de la détection des conflits d’accès aux données dans les programmes MPI OSC intégrée dans Parcoach, un outil de vérification MPI. Cette détection instrumente les accès mémoire du programme et les stocke dans arbre de recherche binaire (BST). Afin d’éviter l’explosion du nombre de noeuds, qui nuit à la mise à l’échelle de l’analyse, nous proposons un nouvel algorithme de fusion de noeuds pour regrouper les accès mémoire adjacents ou équidistants. Nous proposons également une solution pour réduire le coût temporel lors de l’exécution en associant l’analyse dynamique à une analyse statique afin de réduire le nombre d’instrumentations. Ainsi, seules les instructions sujettes à des conflits de données sont instrumentées lors de l’exécution. Des expériences sur des applications réelles montrent que nos contributions permettent d’obtenir une meilleure précision, une réduction de l’utilisation de la mémoire par l’analyse, et une réduction du coût temporel de l’exécution à plus grande échelle. Nous évaluons également nos contributions sur MPI-BugBench (MBB), un benchmark que nous avons développé en collaboration avec l’université RWTH Aachen et l’université technique de Darmstadt. MBB fournit un large éventail de scénarios réels d’utilisation de MPI pour évaluer les outils de vérification. À l’aide de MBB, nous comparons trois outils de pointe pour détecter les erreurs dans les programmes MPI: MUST, ITAC et Parcoach. Pour faciliter la migration aux communications unidirectionnelles, nous introduisons un modèle généralisé Post-Start-Complete-Wait qui traduit les communications bidirectionnelles en communications unidirectionnelles. Nous proposons ensuite Oscar, un outil basé sur des passes LLVM, qui effectue automatiquement cette transformation. Nous validons Oscar sur un microbenchmark et deux applications. Avec Oscar, nous avons observé une accélération d’un facteur trois sur le benchmark de bande passante OSU.
Authors
- Radjasouria Vinayagame
Institutions
- Laboratoire Bordelais de Recherche en Informatique (FR)
Publication Details
- Published
- 2025-11-24
- Primary Topic
- Parallel Computing and Optimization Techniques
- Type
- article
- Field-Weighted Citation Impact
- 0.00