Vous êtes ici : UVSQ RechercheDoctoratSoutenances de thèse

«Expression et optimisation des réorganisations de données dans du parallélisme de flots» par Pablo De Oliveira Castro

le 14 décembre 2010

mardi 14 décembre 2010 à 10h30
Centre de CEA de Saclay
Amphithéâtre de L’INSTN
91191 Gif/Yvette cedex

Présentée par : Mr Pablo DE OLIVEIRA CASTRO Discipline : Informatique Laboratoire : PRISM

Résumé :
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.
Abstract :
Embedded systems designers are moving to multi-cores to increase the performance of their applications. Yet multi-core systems are difficult to program. One hard problem is expressing and optimizing data reorganizations. In this thesis we would like to propose a compilation chain that: 1) uses a simple high-level syntax to express the data reorganization in a parallel application; 2) ensures the deterministic execution of the program (critical in an embedded context); 3) optimizes and adapts the programs to the target's constraints.
To address point 1) we propose a high-level language, SLICES, describing data reorganizations through multidimensional slicings.
To address point 2) we show that it is possible to compile SLICES to a data-flow language, SJD, that is built upon the Cyclostatic Data-Flow formalism and therefore ensures determinism.
To address point 3) we define a set of transformations that preserve the semantics of SJD programs. We show that a subset of these transformations generates a finite space of equivalent programs. We show that this space can be efficiently explored with an heuristic to select the program variant more fit to the target's constraints. Finally we evaluate this method on two classic problems: reducing memory and reducing communication costs in a parallel application.

Informations complémentaires
Albert COHEN, Directeur de Recherche, à l’INRIA - Orsay - Rapporteur
François IRIGOIN, Directeur de Recherche, à MINES Paris Tech - Fontainebleau - Rapporteur - Non présent à la soutenance
Denis BARTHOU, Professeur des Universités, à l’Université de Bordeaux/Laboratoire Bordelais de Recherche en Informatique (LABRI) - Talence - Directeur de thèse
Michel HARRAND, Directeur Technique, à Kalray - Orsay - Examinateur
William JALBY, Professeur des Universités, à l’Université Versailles Saint-Quentin-en-Yvelines/UFR des Sciences - Laboratoire Parallélisme, Réseaux, Systèmes Modélisation (PRISM) - Versailles - Examinateur
Stéphane LOUISE, Ingénieur de Recherche, au CEA de Saclay - Gif/Yvette - Examinateur

Contact :
dredval service FED :