Thèse soutenue

FR
Accès à la thèse
Auteur / Autrice : Nicolas Benoit
Direction : William Jalby
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance en 2012
Etablissement(s) : Versailles-St Quentin en Yvelines

Résumé

FR  |  
EN

Afin d'entretenir la hausse régulière des performances des calculateurs tout en maîtrisant leur consommation énergétique, l'industrie des microprocesseurs développe des architectures permettant de traiter de plus en plus de tâches en parallèle. Ainsi, les futures générations de puces regrouperont jusqu'à plusieurs centaines de cœurs indépendants, parfois fonctionnellement hétérogènes. Pour ne pas exiger comme pré-requis à leur programmation une connaissance détaillée de leur fonctionnement interne, ces futurs processeurs imposent de fait une évolution de la chaîne de compilation. Dans cette thèse, nous proposons avec la présentation d'une extension pour le compilateur GCC plusieurs axes d'évolution de la phase d'adaptation du programme à l'architecture cible. Afin d'analyser et de transformer le programme à compiler, nous décrivons tout d'abord une représentation intermédiaire qui offre une vue hiérarchique du parallélisme exploitable. L'accent est mis ensuite sur la caractérisation des éléments parallèles détectés, et les informations collectées sont réutilisées dans une nouvelle technique d'ordonnancement statique qui peut exploiter plusieurs degrés de parallélisme. Nous abordons aussi l'ordonnancement dynamique et la génération de code pour architectures hétérogènes telles l'IBM Cell BE et les machines dotées d'un accélérateur NVIDIA. Le modèle d'exécution sous-jacent est supporté par un environnement de programmation et un oracle qui permettent d'ajuster le schéma d'exécution à la volée. Nous terminons par une évaluation expérimentale de toutes ces contributions, confirmant ainsi leur pertinence dans une chaîne de compilation pour architectures massivement parallèles.