PYTHIA : un oracle pour guider les décisions des runtimes
Résumé
Les supports d'exécution, ou runtimes, sont des systèmes utilisés pour exploiter efficacement le matériel au sein des applications parallèles. Les runtimes dissimulent la complexité de la gestion du matériel derrière des interfaces haut-niveau. Pour garantir les meilleures performances possibles, ils doivent prendre des décisions en s'appuyant sur des heuristiques afin d'anticiper le comportement futur de l'application. Dans cet article, nous présentons PYTHIA, un oracle exploitant l'aspect déterministe de nombreuses applications parallèles. En enregistrant une trace d'exécution, PYTHIA capture le comportement du programme. Cette trace d'exécution est ensuite utilisée lors des exécutions ultérieures afin d'offrir aux runtimes des prévisions sur le comportement futur de l'application. Grâce à PYTHIA, nous avons implémenté une stratégie de parallélisme adaptatif dans GNU OpenMP qui permet de gagner jusqu'à 38% de temps d'exécution sur certains programmes.
Origine | Fichiers produits par l'(les) auteur(s) |
---|