Thèse soutenue

Erbium : réconcilier les langages, les supports d'exécution, la compilation, et les optimisations pour calculs sur des flux de données

FR  |  
EN
Auteur / Autrice : Cupertino Miranda
Direction : Albert Henri Cohen
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 11/02/2013
Etablissement(s) : Paris 11
Ecole(s) doctorale(s) : Ecole doctorale Informatique de Paris-Sud (2000-2015)
Partenaire(s) de recherche : Laboratoire : Institut national de recherche en informatique et en automatique (France). Unité de recherche (Saclay, Ile-de-France)
Equipe de recherche : ALCHEMY
Jury : Président / Présidente : Daniel Etiemble
Examinateurs / Examinatrices : Albert Henri Cohen, Daniel Etiemble, Alain Darte, Luciano Lavagno, Marc Duranton
Rapporteurs / Rapporteuses : Alain Darte, Luciano Lavagno

Résumé

FR  |  
EN

Frappée par les rendements décroissants de la performance séquentielle et les limitations thermiques, l’industrie des microprocesseurs s’est tournée résolument vers les multiprocesseurs sur puce. Ce mouvement a ramené des problèmes anciens et difficiles sous les feux de l’actualité du développement logiciel. Les compilateurs sont l’une des pièces maitresses du puzzle permettant de poursuivre la traduction de la loi de Moore en gains de performances effectifs, gains inaccessibles sans exploiter le parallélisme de threads. Pourtant, la recherche sur les systèmes parallèles s’est concentrée sur les aspects langage et architecture, et le potentiel reste énorme en termes de compilation de programmes parallèles, d’optimisation et d’adaptation de programmes parallèles pour exploiter efficacement le matériel. Cette thèse relève ces défis en présentant Erbium, un langage de bas niveau fondé sur le traitement de flots de données, et mettant en œuvre des communications multi-producteur multi-consommateur ; un exécutif parallèle très efficace pour les architectures x86 et des variantes pour d’autres types d’architectures ; un schéma d’intégration du langage dans un compilateur illustré en tant que représentation intermédiaire dans GCC ; une étude des primitives du langage et de leurs dépendances permettant aux compilateurs d’optimiser des programmes Erbium à l’aide de transformations spécifiques aux programmes parallèles, et également à travers des formes généralisées d’optimisations classiques, telles que l’élimination de redondances partielles et l’élimination de code mort.