Javascript must be enabled to continue!
Performance and portability optimisation of HPC applications using PGAS models
View through CrossRef
Optimisation du portage et des performances des applications HPC à mémoire distribuée et adressable globalement
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.
Title: Performance and portability optimisation of HPC applications using PGAS models
Description:
Optimisation du portage et des performances des applications HPC à mémoire distribuée et adressable globalement
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.
Related Results
Democratising HPC Training: co-creating an Industrial HPC Nano Online Course
Democratising HPC Training: co-creating an Industrial HPC Nano Online Course
Abstract
Purpose: Disruptive technologies (AI, IoT, etc) unlock new frontiers of data-centric innovation. This increases the computational needs, pushing more and more comp...
PGAS-based Parallel Branch-and-Bound for Ultra-Scale GPU-powered Supercomputers
PGAS-based Parallel Branch-and-Bound for Ultra-Scale GPU-powered Supercomputers
Branch-and-Bound parallèle basé sur PGAS pour les supercalculateurs Ultra-Scale dotés de GPUs
Les algorithmes Branch-and-Bound (B&B) sont couramment utilisés po...
A paradigm shift of HPC for geosciences: a novel HPC service model for geosciences applications
A paradigm shift of HPC for geosciences: a novel HPC service model for geosciences applications
(English) The Oil and Gas (O&G) industry ranks prominently among the leading commercial users of powerful supercomputers worldwide, as indicated by global High-Performance Comp...
HPC Cloud Architecture to Reduce HPC Workflow Complexity in Containerized Environments
HPC Cloud Architecture to Reduce HPC Workflow Complexity in Containerized Environments
The complexity of high-performance computing (HPC) workflows is an important issue in the provision of HPC cloud services in most national supercomputing centers. This complexity p...
LLM as HPC Expert: Extending RAG Architecture for HPC Data
LLM as HPC Expert: Extending RAG Architecture for HPC Data
High-Performance Computing (HPC) is crucial for performing advanced computational tasks, yet their complexity often challenges users, particularly those unfamiliar with HPC-specifi...
Evaluation of the effects of recycled aggregates on the properties of high performance concrete
Evaluation of the effects of recycled aggregates on the properties of high performance concrete
In recent decades, the use of High Performance Concrete (HPC) has grown vastly, being used in multiple applications with high requirements. However, the use of recycled aggregates ...
Polymer Distribution and Mechanism Conversion in Multiple Media of Phase-Separated Controlled-Release Film-Coating
Polymer Distribution and Mechanism Conversion in Multiple Media of Phase-Separated Controlled-Release Film-Coating
Phase-separated films of water-insoluble ethyl cellulose (EC) and water-soluble hydroxypropyl cellulose (HPC) can be utilized to tailor drug release from coated pellets. In the pre...
Robust design optimization of electrical machines for electric and hybrid vehicles
Robust design optimization of electrical machines for electric and hybrid vehicles
Contribution méthodologique au dimensionnement optimal et robuste des machines électriques dédiées aux chaines de traction VE et VEH
Face aux préoccupations croissa...

