Génération automatique de code et optimisation de calculs stencils sur des architectures à mémoire distribuée
Auteur / Autrice : | Mariem Saied |
Direction : | Jens Gustedt, Gilles Muller |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 25/09/2018 |
Etablissement(s) : | Strasbourg |
Ecole(s) doctorale(s) : | École doctorale Mathématiques, sciences de l'information et de l'ingénieur (Strasbourg ; 1997-....) |
Partenaire(s) de recherche : | Laboratoire : Laboratoire des sciences de l'ingénieur, de l'informatique et de l'imagerie (Strasbourg ; 2013-....) - Inria Nancy - Grand Est |
Equipe de recherche : Compilation pour les Architectures MUlti-coeurS | |
Jury : | Président / Présidente : Cédric Bastoul |
Rapporteurs / Rapporteuses : Laurent Réveillère, Sylvain Contassot-Vivier |
Résumé
Nous proposons Dido, un langage dédié (DSL) implicitement parallèle qui capture les spécifications de haut niveau des stencils et génère automatiquement du code parallèle de haute performance pour les architectures à mémoire distribuée. Le code généré utilise ORWL en tant que interface de communication et runtime. Nous montrons que Dido réalise un grand progrès en termes de productivité sans sacrifier les performances. Dido prend en charge une large gamme de calculs stencils ainsi que des applications réelles à base de stencils. Nous montrons que le code généré par Dido est bien structuré et se prête à de différentes optimisations possibles. Nous combinons également la technique de génération de code de Dido avec Pluto l'optimiseur polyédrique de boucles pour améliorer la localité des données. Nous présentons des expériences qui prouvent l'efficacité et la scalabilité du code généré qui atteint de meilleures performances que les implémentations ORWL et MPI écrites à la main.