Optimal parameters determination for the execution of MPI applications on parallel architectures
Détermination de paramètres optimaux pour le déploiement d’applications MPI sur architectures parallèles
Résumé
Supercomputers are used to tackle complex numerical problems, such as simulations, weather forecasting, or artificial intelligence, that require significant computational resources, inaccessible to traditional computers. Composed of multiple powerful interconnected computers, their capabilities continue to grow. However, developing applications that can fully leverage this power is becoming increasingly difficult. Indeed, various factors must be taken into account: heterogeneous computing units requiring specific programming methods, memory hierarchy, data transfers, network communications, and task scheduling. To overcome these challenges, the MPI standard was created, providing a unified interface to facilitate the programming of supercomputers and the management of communications between their components. In this thesis, we explore various ways to improve the performance of applications using MPI by adjusting various parameters to make the best use of the hardware resources available on supercomputers. The work focuses on Open MPI, an open-source implementation of MPI, and proposes optimization techniques to reduce the time and resources required for this task. Among these, we explore Black Box Optimization (BBO), an application-agnostic method that allows for efficient exploration of the parameter space. The main idea behind BBO is to use smart heuristics to select the most promising points in the parameter space to evaluate. Instead of testing all possible combinations, the BBO method enables exploration of this space while minimizing the number of necessary evaluations. Compared to exhaustive exploration, the time required to conduct the process is significantly reduced while providing a solution with virtually identical performance. This approach is particularly useful in the context of MPI applications, where the parameter space can be enormous. On the other hand, we also introduce the concept of skeletonization of MPI applications, a new technique that accelerates the optimization process by extracting a "skeleton" of the application. The extraction is automated using tools provided by LLVM, a set of tools operating around an intermediate representation. This makes the skeleton extraction independent of the programming language used for the application. This skeleton preserves the essential elements for optimizing the application, including its communication patterns, while eliminating computational aspects. It can then be used in place of the original application in the optimization process, reducing the time required for execution without compromising the validity of the obtained results. The contributions presented demonstrate that fine-tuning the parameters of the MPI implementation has the potential to improve the performance of HPC applications.
Les supercalculateurs sont utilisés pour traiter des problèmes numériques complexes, comme les simulations, les prévisions météorologiques ou l’intelligence artificielle, nécessitant d’importantes ressources de calcul, inaccessibles aux ordinateurs traditionnels. Composés de multiples et puissants ordinateurs interconnectés, leurs capacités ne cesse de croître. Toutefois, développer des applications capables d’exploiter pleinement cette puissance devient de plus en plus difficile. En effet, divers facteurs doivent être pris en compte : des unités de calcul hétérogènes nécessitant des méthodes de programmation spécifiques, la hiérarchie mémoire, les transferts de données, les communications réseau et l’ordonnancement des tâches. Pour surmonter ces défis, le standard MPI a été créé, offrant une interface unifiée pour faciliter la programmation des supercalculateurs et la gestion des communications entre leurs composants. Dans cette thèse, nous explorons les différentes façons d’améliorer les performances des applications utilisant MPI en ajustant divers paramètres afin d’exploiter au mieux les ressources matérielles disponibles sur les supercalculateurs. Le travail se concentre sur Open MPI, une implémentation open-source de MPI, et propose des techniques d’optimisation pour réduire le temps et les ressources nécessaires à cette tâche. Parmi celles-ci, nous explorons l’optimisation par boîte noire (BBO), une méthode agnostique vis-à-vis de l’application, qui permet d’explorer l’espace des paramètres de manière efficace. L’idée principale derrière la BBO est d’utiliser des heuristiques intelligentes pour sélectionner les points les plus prometteurs de l’espace des paramètres à évaluer. Plutôt que de tester toutes les combinaisons possibles, la méthode BBO permet d’explorer cet espace en minimisant le nombre d’évaluations nécessaires. En comparaison avec une exploration exhaustive, le temps requis pour réaliser le processus est largement réduit tout en fournissant une solution aux performances pratiquement identiques. Cette approche est particulièrement utile dans le contexte des applications MPI, où l’espace des paramètres peut être gigantesque. D’autre part, nous introduisons également le concept de squelettisation des applications MPI, une nouvelle technique qui permet d’accélérer le processus d’optimisation en extrayant un "squelette" de l’application. L’extraction est automatisée à l’aide des outils fournis par LLVM, un ensemble d’outils fonctionnant autour d’une représentation intermédiaire. Cela rend l’extraction du squelette indépendante du langage de programmation utilisé pour l’application. Ce squelette préserve les éléments essentiels à l’optimisation de l’application, notamment ses schémas de communication, tout en éliminant les aspects calculatoires. Il peut par la suite être utilisé en remplacement de l’application originale dans le processus d’optimisation, ce qui réduit le temps nécessaire à son déroulement sans compromettre la validité des résultats obtenus. Les contributions présentées montrent que finement ajuster les paramètres de l’implémentation de MPI a du potentiel pour améliorer les performances des applications HPC.
Origine | Version validée par le jury (STAR) |
---|