Développer une algorithmique dans un contexte exaflopique

par Maxim Moraru

Projet de thèse en Info - Informatique

Sous la direction de Michael Krajecki.

Thèses en préparation à Reims , dans le cadre de Ecole doctorale Sciences du Numérique et de lu2019Ingénieur , en partenariat avec CRESTIC - Centre de Recherches en STIC (laboratoire) depuis le 01-10-2019 .


  • Résumé

    Pour répondre aux besoins de calculs scientifiques et d'intelligence artificielle, l'objectif des Etats-Unis, de l'Europe et de la Chine est de construire une machine exaflopique à l'horizon 2020. Ce challenge de l'exascale se heurte à trois limitations majeures : la consommation énergétique avec une enveloppe maximale de 20MW, la puissance de calcul et les communications intra et inter-nœuds. Pour la consommation énergétique et la puissance de calcul, la solution actuelle se base sur les architectures hybrides, qui favorisent l'adjonction d'accélérateurs aux processeurs (également appelés CPU - Central processing unit). A l'heure actuelle, les accélérateurs majoritairement exploités sont des GPU (Graphics Processing Unit) proposés par la société américaine NVIDIA. Ces derniers équipent les supercalculateurs les plus puissants du monde et sont accompagnés d'un environnement complet destiné aux chercheurs et ingénieurs du domaine. Des technologies concurrentes constituent des alternatives crédibles, mais n'ont pas à ce jour réussi à répondre à la demande croissante du HPC (High Performance Computing) et à s'imposer à large échelle : on peut citer les GPU développés par la société ATI, les Xeon-Phi de Intel, ou encore les processeurs Sunway qui équipent la machine chinoise TaihuLight, troisième dans le classement TOP500 publié en novembre 2018. Actuellement, 89% des supercalculateurs de ce classement exploitant des accélérateurs ont recours aux technologies développées par NVIDIA. C'est le cas pour les deux supercalculateurs ROMEO actuellement en production et installés en 2013 et 2018. La fédération de ressources de calcul au sein d'un supercalculateur suppose la mise à disposition d'un réseau d'interconnexion dédié et extrêmement performant. De façon classique, ces réseaux ont été conçus pour permettre un échange efficace des données entre les mémoires gérées par les processeurs. Ainsi, deux niveaux de communication sont généralement admis : (1) intra-nœud c'est-à-dire entre les processeurs physiquement regroupés dans un même serveur et (2) inter-nœud, entre des processeurs répartis dans des serveurs distincts. L'arrivée des accélérateurs de calcul pose la question centrale de ces derniers dans les mécanismes de communication. Quelques solutions ont émergé récemment mais posent, au-delà des questions technologiques, des questions d'ordre algorithmique : comment accéder efficacement à la mémoire d'un accélérateur et comment tenir compte dans la conception d'applications HPC de la localité des données selon le triptyque accélérateur/processeur/nœud de calcul ? D'un point de vue algorithmique, la communication inter-nœud est souvent associée au modèle DRAM (Distributed Random Access Memory) et trouve son expression dans des bibliothèques de communication comme MPI (Message Passing Interface) [Gro14]. De façon symétrique, la communication intra-nœud repose sur le modèle PRAM (Parallel Random Access Memory) qui favorise une résolution locale basée sur des calculs en mémoire partagée, notamment avec OpenMP (Open Multi-Processing) [Cha08]. Le modèle de programmation open source MPC (Multi-Processor Computing) [CPJ10, SCB15], développé par le CEA, permet de rapprocher les deux modèles DRAM et PRAM mais à ce stade il ne permet pas d'adresser les accélérateurs de calcul. Afin de permettre d'envisager l'algorithmique parallèle selon un modèle de programmation de haut niveau, nous proposons dans un premier temps d'étendre le modèle MPC aux GPU NVIDIA. Par la suite, pour que les performances soient au rendez-vous sur les supercalculateurs dotés de réseaux d'interconnexion de dernière génération, nous proposons d'intégrer à MPC les possibilités de communication directes entre accélérateurs : • au sein d'un même nœud de calcul, en s'appuyant sur les principes DMA (Direct Memory Access) ; • ou entre des nœuds de calcul distants sur le principe RDMA (Remote Direct Memory Access), permettant aux accélérateurs un accès direct au réseau d'interconnexion. Les contributions de cette thèse seront donc réalisées en collaboration étroite avec : 1. Le CEA DAM IdF, qui a proposé le modèle MPC et cofinancera cette étude 2. ATOS Bull, qui développe l'interconnect BXI Le modèle de programmation étendu sera validé sur des applications caractéristiques du monde du HPC actuel (applications de calcul classique ou mettant en œuvre des techniques d'intelligence artificielle) ; les développements de l'environnement et des applications de test seront réalisés sur le supercalculateur ROMEO de l'URCA.

  • Titre traduit

    Intitulé en anglais : Accelerators over network


  • Résumé

    While the first exascale machines can be expected by 2020/2021, the performance rise of such systems is tightly bound to their energy consumption (an exascale computer should not consume more than 20MW). The current solutions favor the usage of hybrid architectures based on accelerators. Indeed, such architectures are not only able to improve the computing power but also help to reduce the electrical consumption of the nodes. However, the federation of computing resources within a supercomputer supposes the provision of a dedicated and extremely efficient interconnection network. Conventionally, these networks have been designed to allow an efficient exchange of data between the memories managed by the processors. Thus, 2 levels of communication are generally assumed: (i) intra-node, between processors physically located in the same server and (ii) inter-node, among processors distributed in separate servers. The arrival of accelerators complexified the interconnection needs, as now we must also take into account at least 3 communication levels connecting GPUs, CPUs, and servers. Their superposition exposes a performance bottleneck that must be leveraged on the next supercomputer generations. From an algorithmic point of view, the inter-node communication is often associated with the DRAM model, which is represented by communication libraries such as MPI. Similarly, intra-node communication is often based on the PRAM model that favors local computations based on shared memory, as in the case of the OpenMP library. Although these libraries can be used together, each one has specific requirements that make programming awkward and inefficient. One alternative is the open source programming model MPC developed by the CEA, which conciliates both DRAM and PRAM programming models. Extending MPC to take advantage of accelerators in the exascale avenue and exploring alternative solutions constitutes one challenge of this PhD proposal.