Thèse soutenue

Méthodes d’optimisation scalables dans le modèle polyédrique

FR  |  
EN
Auteur / Autrice : Nicolas Vasilache
Direction : Albert Henri Cohen
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance en 2007
Etablissement(s) : Paris 11
Partenaire(s) de recherche : autre partenaire : Université de Paris-Sud. Faculté des sciences d'Orsay (Essonne)

Résumé

FR  |  
EN

Limités par une augmentation incontrôlée de la dissipation d'énergie et de la complexité des circuits de contrôle, les processeurs actuels évoluent vers des architectures multi-coeurs avec de plus en plus de threads par coeur. La tâche consistant à générer du code efficace pour ces machines hautement hétérogènes incombe aux compilateurs. Le modèle polyédrique est une abstraction mathématique qui permet de représenter l'exécution de programmes contenant des boucles de contrôle affines. Il permet de résoudre des problèmes de compromis présents dans les compilateurs traditionnels. Dans la première partie de cette thèse, nous étudions les problèmes rencontrés par les compilateurs. Grâce au modèle polyédrique, nous montrons comment une méthode semi-automatique permet de passer outre. Dans la seconde partie, nous nous penchons sur le problème de l’ordonnancement et donnons une formulation multidimensionnelle qui exprime l'ensemble des ordonnancements légaux sous forme d'un seul problème global. Nous revisitons l'analyse de dépendances et proposons une méthode pour corriger des séquences de transformations complexes. Dans la troisième partie nous discutons le problème de la génération de code et nous construisons le premier générateur de code polyédrique qui permet la réentrance. Nous introduisons également les notions de transformation à la génération de code et d'équivalence d'ordonnancement pour contrôler les optimisations de programme au niveau le plus fin possible. Les contributions de cette thèse ont été implémentées dans l'environnement ``URUK'' et dans le compilateur XLC d'IBM