Unification des mémoires réparties dans les systèmes hétérogènes
Auteur / Autrice : | Erwan Lenormand |
Direction : | Henri-Pierre Charles, Loïc Cudennec, Stéphane Louise |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 31/01/2022 |
Etablissement(s) : | université Paris-Saclay |
Ecole(s) doctorale(s) : | École doctorale Sciences et technologies de l'information et de la communication (Orsay, Essonne ; 2015-....) |
Partenaire(s) de recherche : | Laboratoire : Laboratoire d'intégration des systèmes et des technologies (Gif-sur-Yvette, Essonne ; 2001-....) |
référent : Faculté des sciences d'Orsay | |
graduate school : Université Paris-Saclay. Graduate School Informatique et sciences du numérique (2020-....) | |
Jury : | Président / Présidente : Marc Pérache |
Examinateurs / Examinatrices : Samuel Thibault, Tanguy Risset, Soraya Zertal, Olivier Muller, Catherine Dezan | |
Rapporteurs / Rapporteuses : Samuel Thibault, Tanguy Risset |
Mots clés
Résumé
Suite à la perte de la mise à l'échelle de Dennard, les systèmes de calcul deviennent hétérogènes, notamment par l'ajout de coprocesseurs. Grâce à leur architecture optimisée pour traiter massivement les données, les coprocesseurs permettent à la fois d'accélérer le traitement des applications et d'en augmenter l'efficacité énergétique. Cependant, cette amélioration des performances par l'hétérogénéité se paie au prix d'un modèle de programmation hybride et distribué rendant l'utilisation des systèmes plus complexe. Cette thèse souhaite apporter une solution au problème de la gestion des données dans les systèmes hétérogènes. Beaucoup d'approches ont été proposées pour répondre à cette problématique. Si elles présentent toutes des caractéristiques différentes, la majorité repose sur un partitionnement à gros grains des structures de données en blocs réguliers. Les blocs sont transférés avant le lancement des noyaux de calcul pour satisfaire les dépendances de données. Ces approches permettent de gérer efficacement des structures de données régulières dont le traitement génère des motifs d'accès réguliers et prévisibles. Cependant beaucoup d’applications de calcul utilisent des structures de données irrégulières dont le traitement provoque des accès aléatoires et imprévisibles. Tel que l'illustre le banc de test High Performance Conjugate Gradient, les performances de ces applications sont limitées par celles des systèmes mémoires et d'interconnexions. Ainsi, l'optimisation de ces applications nécessitent de limiter les échanges de données entre les différentes mémoires. Une mémoire partagée offre un paradigme pratique pour la programmation de ce genre d'applications en résolvant les problématiques de la localisation, de l'orchestration des transferts et du maintien de la cohérence des données. Grâce à leur architecture programmable, les accélérateurs reconfigurables semblent être les ressources de calcul les plus adaptées pour traiter les applications irrégulières. Ainsi, dans le cadre des travaux de cette thèse, nous avons proposé d'étudier l'intégration d'accélérateurs reconfigurables dans une Mémoire Virtuellement Partagée(MVP). Ce positionnement se distingue de l'état de l'art par la capacité donnée aux accélérateurs d'initier les accès aux données distantes. Pour ce faire, nous avons proposé un modèle d'intégration des accélérateurs dans une MVP logicielle déjà existante. Cette intégration repose sur un système de proxy permettant de faire communiquer la logique programmable de l'accélérateur, avec l'environnement logiciel de la MVP. Nous avons proposé un modèle de programmation pour ce système qui répond aux besoins des applications dont les motifs d'accès aux données sont aléatoires. Pour résoudre le problème de la latence d'accès aux données distante, le modèle de programmation utilise la superposition temporelle des flux de données transférées avec les flux de données traitées. Pour ce faire, il s'appuie sur un partitionnement des structures de données irrégulières en blocs de tailles adaptables permettant de masquer l'irrégularité des structures et de précharger les données sous forme de flux réguliers. Nous avons développé un outil de modélisation et de simulation permettant de valider le système et le modèle de programmation proposés. Deux cas d'études, la multiplication de matrices creuses et un code de simulation de tsunami, ont été utilisés pour mener les expérimentations. Les résultats obtenus ont montré que le modèle de programmation permet de cacher efficacement les latences d’accès aux données et de quasiment atteindre les performances maximales permises par la bande passante du système mémoire du FPGA modélisé.