Erbium : réconcilier les langages, les supports d'exécution, la compilation, et les optimisations pour calculs sur des flux de données
| 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é
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.