Unification des mémoires réparties dans les systèmes hétérogènes - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2022

Unifying Distributed Memories in Heterogeneous Systems

Unification des mémoires réparties dans les systèmes hétérogènes

Résumé

Following the loss of Dennard scaling, computing systems have become increasingly heterogeneous by the integration of coprocessors. Thanks to their massively parallel architecture, coprocessors can both speed up processing and increase the energy efficiency of applications. However, this performance improvement through heterogeneity comes at the cost of a hybrid and distributed programming model that makes systems more complex to program. This thesis aims to address the data management problem in heterogeneous systems. Many works have been proposed to address this issue. While they all have different features, most rely on coarse-grained partitioning of data structures into regular blocks. Blocks are transferred before the compute kernels are executed to resolve data dependencies. These works make it possible to efficiently manage regular data structures whose processing generates regular and predictable access patterns. However, scientific applications increasingly use irregular data structures resulting in random and unpredictable data accesses. As illustrated by the High Performance Conjugate Gradient benchmark, the performance of these applications is limited by those of memory and interconnect systems. Thus, the optimization of these applications requires limiting the data exchange between the different memory systems. Shared memory is a convenient paradigm to program such applications by solving the problems of data localization, data transfers orchestration and data coherency. Thanks to their reconfigurable architecture, Field-programmable gate arrays (FPGAs) are particularly suitable for processing irregular applications. Thus, as part of the work of this thesis, we have proposed to study the integration of FPGAs in a Distributed Shared Memory (DSM). This work positioning differs from the state of the art by the ability given to accelerators to initiate access to remote data. To do this, we have proposed a integration model of FPGAs into Software-Distributed Shared Memory (S-DSM). This is based on a proxy system enabling the compute kernels, implementing on the programmable logic of the accelerator, to communicate with the software environment of the S-DSM. We have proposed a programming model for this system that meets the requirements of applications whose randomly access data. To solve the problem of remote data access latency, the programming model relies on a temporal overlay of the transferred data flow with the processed data flow. To do this, it relies on irregular data structures partitioning into blocks of adaptable sizes in order to hide structures irregularities and to be able to prefetch data. We have developed a modeling and simulation tool to validate the proposed system and programming model. General Sparse Matrix-Matrix Multiplication (SpGEMM) and a tsunami simulation code were used as case studies to conduct experiments. They allowed to assess the programming model for two widely used irregular data structures: compressed sparse matrix and unstructured mesh. The obtained results showed that the programming model enables to effectively hide data access latencies and to almost reach the maximum performance allowed by the FPGA local memory bandwidth.
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é.
Fichier principal
Vignette du fichier
107017_LENORMAND_2022_diffusion.pdf (5.77 Mo) Télécharger le fichier
107017_LENORMAND_2022_slides_soutenance_annexes.pdf (12.36 Mo) Télécharger le fichier
Origine : Version validée par le jury (STAR)
Format : Autre

Dates et versions

tel-03600744 , version 1 (07-03-2022)

Identifiants

  • HAL Id : tel-03600744 , version 1

Citer

Erwan Lenormand. Unification des mémoires réparties dans les systèmes hétérogènes. Calcul parallèle, distribué et partagé [cs.DC]. Université Paris-Saclay, 2022. Français. ⟨NNT : 2022UPASG007⟩. ⟨tel-03600744⟩
178 Consultations
234 Téléchargements

Partager

Gmail Facebook X LinkedIn More