Thèse soutenue

Expression et optimisation des réorganisations de données dans du parallélisme de flots

FR  |  
EN
Auteur / Autrice : Pablo de Oliveira Castro Herrero
Direction : Denis Barthou
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance en 2010
Etablissement(s) : Versailles-St Quentin en Yvelines

Résumé

FR  |  
EN

Pour permettre une plus grande capacité de calcul, les concepteurs de systèmes embarqués se tournent aujourd'hui vers les multicœurs. Malheureusement, ces systèmes sont difficiles à programmer. Un des problèmes durs est l'expression et l'optimisation des réorganisations de données. Dans cette thèse nous souhaitons proposer une chaîne de compilation qui: 1) utilise une syntaxe simple et haut-niveau pour exprimer le découpage et la réorganisation des données d'un programme parallèle; 2) garantisse une exécution déterministe du programme (critique dans le cadre des systèmes embarqués); 3) optimise et adapte les programmes aux contraintes de l'architecture. Pour répondre au point 1) nous proposons un langage haut-niveau, SLICES, qui décrit les réorganisation de données à travers des découpages multidimensionnels. Pour répondre au point 2) nous montrons qu'il est possible de compiler SLICES vers un langage de flots de données, SJD, qui s'inscrit dans le modèle Cyclostatic Data-Flow et donc admet une exécution déterministe. Pour répondre au point 3) nous définissons un ensemble de transformations qui préservent la sémantique des programmes SJD. Nous montrons qu'il existe un sous-ensemble de ces transformations qui génère un espace de programmes équivalents fini. Nous proposons une heuristique pour explorer cet espace de manière à choisir la variante la plus adaptée à notre architecture. Enfin nous évaluons cette méthode sur deux problèmes classiques: la réduction de la mémoire consommée et la réduction du coût des communications d'une application parallèle.