Performance Modelling and Simulation of OpenMP Applications
Modélisation de performance et simulation d'applications OpenMP
Résumé
Anticipating the behavior of applications, studying, and designing algorithms are some of the most important purposes for the performance and correction studies about simulations and applications relating to intensive computing. Many frameworks were designed to simulate large distributed computing infrastructures and the applications running on them. At the node level, some frameworks have also been proposed to simulate task-based parallel applications. However, one missing critical capability from these works is the ability to take Non-Uniform Memory Access (NUMA) effects into account, even though virtually every HPC (High Performance Computing) platform nowadays exhibits such effects. We model different shared-memory architectures by performing our own measures in order to obtain their characteristics. We thus present in this PhD a new simulator for dependency-based task-parallel applications, that enables experimenting with multiple data locality models. It is based on collecting a trace of the sequential execution of the targeted application using the standard OpenMP tracing interface, OMPT (OpenMP Trace). We also introduce three models, two of them being locality-aware performance models: a first model that only takes into account tasks execution time, a lightweight model that uses topology information to weight data transfers, and eventually a more complex model that takes into account data storage in the LLC (Last Level Cache, generally L3). We validate both models on dense linear algebra test cases and show that, on average, our simulator reproducibly and quickly predicts execution time with a small relative error and allows the experimentation and studying of various scheduling heuristics.
Anticiper le comportement des applications, étudier et concevoir des algorithmes sont quelques-uns des objectifs les plus importants pour les études de performances et de correction des simulations et des applications liées au calcul intensif. De nombreux frameworks ont été conçus pour simuler de grandes infrastructures informatiques distribuées et les applications qui y sont exécutées. Au niveau des noeuds, certains outils ont également été proposés pour simuler des applications parallèles basées sur des tâches. Cependant, une capacité critique manquante à ces travaux est la capacité à prendre en compte les effets d’accès non uniforme à la mémoire (NUMA, Non-Uniform Memory Access), même si pratiquement toutes les plateformes HPC (High Performance Computing, i.e. calcul haute performance) présentent aujourd’hui de tels effets. Nous modélisons différentes architectures à mémoire partagée en effectuant nos propres mesures pour en obtenir les caractéristiques. Nous présentons donc dans cette thèse un nouveau simulateur d’applications parallèles à base de tâches dépendantes, qui permet d’expérimenter plusieurs modèles de localité des données. Celui-ci s’appuie sur l’enregistrement d’une trace de l’exécution séquentielle de l’application cible, en utilisant l’interface standard de trace pour OpenMP, OMPT (OpenMP Trace). Nous introduisons également trois modèles de performances dont deux sont sensibles à la localité : un premier modèle qui ne prend en compte que les temps d’exécution des tâches, un modèle léger qui utilise des informations de topologie pour pondérer les transferts de données, et enfin un modèle plus complexe qui prend en compte le stockage de données dans le LLC (Last Level Cache, i.e. cache de dernier niveau, en général le L3). Nous validons nos modèles sur des cas tests d’algèbre linéaire dense et montrons qu’en moyenne, notre simulateur prédit de manière reproductible et rapide le temps d’exécution avec une erreur relative réduite et permet l’expérimentation et l’étude de diverses heuristiques d’ordonnancement.
Origine | Version validée par le jury (STAR) |
---|