XFOR (Multifor) : A new programming structure to ease the formulation of efficient loop optimizations / Imen Fassi ; sous la direction de Philippe Clauss

Date :

Type : Livre / Book

Type : Thèse / Thesis

Langue / Language : anglais / English

Programmation parallèle (informatique)

Compilation (informatique)

Polyèdres -- Informatique

Algorithmes

Classification Dewey : 005.4

Clauss, Philippe (19..-.... ; chercheur en informatique) (Directeur de thèse / thesis advisor)

Derrien, Steven (19..-....) (Président du jury de soutenance / praeses)

Irigoin, François (Rapporteur de la thèse / thesis reporter)

Barthou, Denis (1970-....) (Rapporteur de la thèse / thesis reporter)

Université de Strasbourg (2009-....) (Organisme de soutenance / degree-grantor)

École doctorale Mathématiques, sciences de l'information et de l'ingénieur (Strasbourg ; 1997-....) (Ecole doctorale associée à la thèse / doctoral school)

Laboratoire des sciences de l'ingénieur, de l'informatique et de l'imagerie (Strasbourg ; 2013-....) (Laboratoire associé à la thèse / thesis associated laboratory)

Résumé / Abstract : Nous proposons une nouvelle structure de programmation appelée XFOR (Multifor), dédiée à la programmation orientée réutilisation de données. XFOR permet de gérer simultanément plusieurs boucles "for" ainsi que d’appliquer/composer des transformations de boucles d’une façon intuitive. Les expérimentations ont montré des accélérations significatives des codes XFOR par rapport aux codes originaux, mais aussi par rapport au codes générés automatiquement par l’optimiseur polyédrique de boucles Pluto. Nous avons mis en œuvre la structure XFOR par le développement de trois outils logiciels: (1) un compilateur source-à-source nommé IBB, qui traduit les codes XFOR en un code équivalent où les boucles XFOR ont été remplacées par des boucles for sémantiquement équivalentes. L’outil IBB bénéficie également des optimisations implémentées dans le générateur de code polyédrique CLooG qui est invoqué par IBB pour générer des boucles for à partir d’une description OpenScop; (2) un environnement de programmation XFOR nommé XFOR-WIZARD qui aide le programmeur dans la ré-écriture d’un programme utilisant des boucles for classiques en un programme équivalent, mais plus efficace, utilisant des boucles XFOR; (3) un outil appelé XFORGEN, qui génère automatiquement des boucles XFOR à partir de toute représentation OpenScop de nids de boucles transformées générées automatiquement par un optimiseur automatique.

Résumé / Abstract : We propose a new programming structure named XFOR (Multifor), dedicated to data-reuse aware programming. It allows to handle several for-loops simultaneously and map their respective iteration domains onto each other. Additionally, XFOR eases loop transformations application and composition. Experiments show that XFOR codes provides significant speed-ups when compared to the original code versions, but also to the Pluto optimized versions. We implemented the XFOR structure through the development of three software tools: (1) a source-to-source compiler named IBB for Iterate-But-Better!, which automatically translates any C/C++ code containing XFOR-loops into an equivalent code where XFOR-loops have been translated into for-loops. IBB takes also benefit of optimizations implemented in the polyhedral code generator CLooG which is invoked by IBB to generate for-loops from an OpenScop specification; (2) an XFOR programming environment named XFOR-WIZARD that assists the programmer in re-writing a program with classical for-loops into an equivalent but more efficient program using XFOR-loops; (3) a tool named XFORGEN, which automatically generates XFOR-loops from any OpenScop representation of transformed loop nests automatically generated by an automatic optimizer.