Au-delà des limites du modèle polyédrique : l'alliage de la parallélisation spéculative de programmes avec la compilation polyédrique
Auteur / Autrice : | Aravind Sukumaran Rajam |
Direction : | Philippe Clauss |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 05/11/2015 |
Etablissement(s) : | Strasbourg |
Ecole(s) doctorale(s) : | École doctorale Mathématiques, sciences de l'information et de l'ingénieur (Strasbourg ; 1997-....) |
Partenaire(s) de recherche : | Laboratoire : Laboratoire des sciences de l'ingénieur, de l'informatique et de l'imagerie (Strasbourg ; 2013-....) |
Jury : | Président / Présidente : Henri-Pierre Charles |
Rapporteurs / Rapporteuses : Ponnuswamy Sadayappan, Erven Rohou |
Mots clés
Résumé
Dans cette thèse, nous présentons nos contributions à Apollo (Automatic speculative POLyhedral Loop Optimizer), qui est un compilateur automatique combinant la parallélisation spéculative et le modèle polyédrique, afin d’optimiser les codes à la volée. En effectuant une instrumentation partielle au cours de l’exécution, et en la soumettant à une interpolation, Apollo est capable de construire un modèle polyédrique spéculatif dynamiquement. Ce modèle spéculatif est ensuite transmis à Pluto, qui est un ordonnanceur polyédrique statique. Apollo sélectionne ensuite un des squelettes d’optimisation de code générés statiquement, et l’instancie. La partie dynamique d’Apollo surveille continuellement l’exécution du code afin de détecter de manière dé- centralisée toute violation de dépendance. Une autre contribution importante de cette thèse est notre extension du modèle polyédrique aux codes exhibant un comportement non-linéaire. Grâce au contexte dynamique et spéculatif d’Apollo, les comportements non-linéaires sont soit modélisés par des hyperplans de régression linéaire formant des tubes, soit par des intervalles de valeurs atteintes. Notre approche permet l’application de transformations polyédriques à des codes non-linéaires grâce à un système de vérification de la spéculation hybride, combinant vérifications centralisées et décentralisées.