Expression et optimisation des réorganisations de données dans du parallélisme de flots - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2010

Expression and optimization of data reorganizations in dataflow parallelism

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

Résumé

Embedded systems designers are moving to multicores to increase the performance of their applications. Yet multicore systems are difficult to program. One hard problem is the expression and the optimization of data reorganizations. We would like to propose a compilation chain that : 1) uses a simple high-level syntax to express data reorganizations within a parallel application ; 2) ensures the deterministic execution of the program (critical in an embedded context) ; 3) optimizes and adapts the program 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 dataflow 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. This space can be efficiently explored with an heuristic that selects 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.
Pour permettre une plus grande capacité de calcul les concepteurs de systèmes embarqués se tournent aujourd'hui vers les MPSoC. Malheureusement, ces systèmes sont difficiles à programmer. Un des problèmes durs est l'expression et l'optimisation des réorganisations de données au sein d'un programme. Dans cette thèse nous souhaitons proposer une chaîne de compilation qui : 1) propose une syntaxe simple et haut-niveau pour exprimer le découpage et la réorganisation des données d'un programme parallèle ; 2) définisse 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 permet de décrire 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 des 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 des communications d'une application parallèle.
Fichier principal
Vignette du fichier
these-oliveira-final.pdf (2.48 Mo) Télécharger le fichier
Loading...

Dates et versions

tel-00580170 , version 1 (26-03-2011)

Identifiants

  • HAL Id : tel-00580170 , version 1

Citer

Pablo de Oliveira Castro Herrero. Expression et optimisation des réorganisations de données dans du parallélisme de flots. Informatique [cs]. Université de Versailles-Saint Quentin en Yvelines, 2010. Français. ⟨NNT : ⟩. ⟨tel-00580170⟩
180 Consultations
500 Téléchargements

Partager

Gmail Facebook X LinkedIn More