Thèse soutenue

Étude de transformations et d’optimisations de code parallèle statique ou dynamique pour architecture "many-core"

FR  |  
EN
Auteur / Autrice : Camille Gallet
Direction : Albert Henri Cohen
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 13/10/2016
Etablissement(s) : Paris 6
Ecole(s) doctorale(s) : École doctorale Informatique, télécommunications et électronique de Paris
Partenaire(s) de recherche : Laboratoire : Commissariat à l’énergie atomique et aux énergies alternatives (Arpajon). Direction des application militaires Île-de-France
Jury : Président / Présidente : Lionel Lacassagne
Examinateurs / Examinatrices : Pascale Rossé-Laurent, Patrick Carribault
Rapporteurs / Rapporteuses : William Jalby, Henri-Pierre Charles

Résumé

FR  |  
EN

L’évolution des supercalculateurs, de leur origine dans les années 60 jusqu’à nos jours, a fait face à 3 révolutions : (i) l’arrivée des transistors pour remplacer les triodes, (ii) l’apparition des calculs vectoriels, et (iii) l’organisation en grappe (clusters). Ces derniers se composent actuellement de processeurs standards qui ont profité de l’accroissement de leur puissance de calcul via une augmentation de la fréquence, la multiplication des cœurs sur la puce et l’élargissement des unités de calcul (jeu d’instructions SIMD). Un exemple récent comportant un grand nombre de cœurs et des unités vectorielles larges (512 bits) est le co-proceseur Intel Xeon Phi. Pour maximiser les performances de calcul sur ces puces en exploitant aux mieux ces instructions SIMD, il est nécessaire de réorganiser le corps des nids de boucles en tenant compte des aspects irréguliers (flot de contrôle et flot de données). Dans ce but, cette thèse propose d’étendre la transformation nommée Deep Jam pour extraire de la régularité d’un code irrégulier et ainsi faciliter la vectorisation. Ce document présente notre extension et son application sur une mini-application d’hydrodynamique multi-matériaux HydroMM. Ces travaux montrent ainsi qu’il est possible d’obtenir un gain de performances significatif sur des codes irréguliers.