De la collecte de trace à la prédiction du comportement d'applications parallèles - TEL - Thèses en ligne Access content directly
Theses Year : 2022

From trace collection to the prediction of the behaviour of parallel applications

De la collecte de trace à la prédiction du comportement d'applications parallèles

Abstract

Runtime systems are commonly used by parallel applications in order to efficiently exploit the underlying hardware resources. A runtime system hides the complexity of the management of the hardware and exposes a high-level interface to application developers. To this end, it makes decisions by relying on heuristics that estimate the future behavior of the application. We propose Pythia, a library that serves as an oracle capable of predicting the future behavior of an application, so that the runtime system can make more informed decisions. Pythia builds on the deterministic nature of many HPC applications: by recording an execution trace, Pythia captures the application main behavior. The trace can be provided for future executions of the application, and a runtime system can ask for predictions of future program behavior. We evaluate Pythia on 13 MPI applications and show that Pythia can accurately predict the future of most of these applications, even when varying the problem size. We demonstrate how Pythia predictions can guide a runtime system optimization by implementing an adaptive thread parallelism strategy in GNU OpenMP runtime system. The evaluation shows that, thanks to Pythia prediction, the adaptive strategy reduces the execution time of an application by up to 38%.
Les supports d'exécution sont couramment utilisés par les applications parallèles afin d'exploiter efficacement les ressources matérielles sous-jacentes. Un support d'exécution dissimule la complexité de la gestion du matériel et expose aux développeurs d'applications une interface de haut niveau. À cette fin, il prend des décisions en s'appuyant sur des heuristiques qui estiment le comportement futur de l'application. Nous proposons Pythia, une bibliothèque utilisable comme oracle capable de prédire le comportement futur d'une application afin que les supports d'exécutions puissent prendre des décisions plus éclairées. Pythia s'appuie sur la nature déterministe de nombreuses applications HPC : en enregistrant une trace d'exécution, Pythia capture le comportement général de l'application. Cette trace est ensuite utilisée lors des exécutions suivantes de l'application et le support d'exécution peut demander des prédictions sur le comportement futur du programme. Nous évaluons Pythia sur 13 applications MPI et nous montrons que Pythia peut prédire précisément le futur de la plupart de ces applications, même en variant la taille des données. Nous montrons comment les prédictions de Pythia peuvent guider l'optimisation d'un support d'exécution en implémentant une stratégie de parallélisme adaptatif dans le support d'exécution GNU OpenMP. L'évaluation montre que, grâce aux prédictions de Pythia cette stratégie adaptative peut réduire le temps d'exécution d'une application jusqu'à 38%.
Fichier principal
Vignette du fichier
110157_COLIN_2022_archivage.pdf (1.5 Mo) Télécharger le fichier
Origin : Version validated by the jury (STAR)

Dates and versions

tel-03954260 , version 1 (24-01-2023)

Identifiers

  • HAL Id : tel-03954260 , version 1

Cite

Alexis Colin. De la collecte de trace à la prédiction du comportement d'applications parallèles. Informatique. Institut Polytechnique de Paris, 2022. Français. ⟨NNT : 2022IPPAS020⟩. ⟨tel-03954260⟩
80 View
46 Download

Share

Gmail Facebook X LinkedIn More