L’Ecole doctorale : Ecole Doctorale de l’Institut Polytechnique de Paris
et le Laboratoire de recherche SAMOVAR – Services rĂ©partis, Architectures, ModĂ©lisation, Validation, Administration des RĂ©seaux
présentent
lâAVIS DE SOUTENANCE de Monsieur RĂ©mi DULONG
AutorisĂ© Ă prĂ©senter ses travaux en vue de lâobtention du Doctorat de l’Institut Polytechnique de Paris, prĂ©parĂ© Ă TĂ©lĂ©com SudParis en :
Informatique
« Vers de nouveaux paradigmes mĂ©moire: IntĂ©gration de mĂ©moire principale non-volatile et d’accĂšs direct de mĂ©moire distante dans les systĂšmes modernes »
le LUNDI 18 DĂCEMBRE 2023 Ă 15h00
Ă
Laboratoire d’Informatique
Rue Emile-Argand 11 2000 NeuchĂątel SUISSE
Membres du jury :
M. GaĂ«l THOMAS, Directeur de recherche, TĂ©lĂ©com SudParis, FRANCE – CoDirecteur de these
Mme Anne-Marie KERMARREC, Directrice de recherche, EPFL, SUISSE – Rapporteur
M. Patrick EUGSTER, Professeur, USI, SUISSE – Examinateur
M. Noel DE PALMA, Professeur, UniversitĂ© Grenoble Alpes, FRANCE – Rapporteur
M. Thomas CLAUSEN, Professeur, IP Paris, FRANCE – Examinateur
M. Pascal FELBER, Directeur de recherche, UNINE, SUISSE – CoDirecteur de these
« Vers de nouveaux paradigmes mĂ©moire: IntĂ©gration de mĂ©moire principale non-volatile et d’accĂšs direct de mĂ©moire distante dans les systĂšmes modernes »
présenté par Monsieur Rémi DULONG
Résumé :
Les ordinateurs modernes sont construits autour de deux Ă©lĂ©ments : leur CPU et leur mĂ©moire principale volatile, ou RAM. Depuis les annĂ©es 1970, ce principe a Ă©tĂ© constamment amĂ©liorĂ© pour offrir toujours plus de fonctionnalitĂ©s et de performances. Dans cette thĂšse, nous Ă©tudions deux paradigmes de mĂ©moire qui proposent de nouvelles façons dâinteragir avec la mĂ©moire dans les systĂšmes modernes : la mĂ©moire non-volatile et les accĂšs mĂ©moire distants. Nous mettons en Ćuvre des outils logiciels qui exploitent ces nouvelles approches afin de les rendre compatibles et dâexploiter leurs performances avec des applications concrĂštes. Nous analysons Ă©galement lâimpact des technologies utilisĂ©es, et les perspectives de leur Ă©volution dans les annĂ©es Ă venir. Pour la mĂ©moire non-volatile, comme les performances de la mĂ©moire sont essentielles pour atteindre le potentiel dâun CPU, cette fonctionnalitĂ© a historiquement Ă©tĂ© abandonnĂ©e. MĂȘme si les premiers ordinateurs ont Ă©tĂ© conçus avec des formes de mĂ©moire non volatiles, les architectes informatiques ont commencĂ© Ă utiliser la RAM volatile pour ses performances inĂ©galĂ©es, et nâont jamais remis en question cette dĂ©cision pendant des annĂ©es. Cependant, en 2019, Intel a commercialisĂ© un nouveau composant appelĂ© Optane DCPMM qui rend possible lâutilisation de NVMM. Ce produit propose une nouvelle façon de penser la persistance des donnĂ©es. Mais il remet Ă©galement en question lâarchitecture de nos machines et la maniĂšre dont nous les programmons. Avec cette nouvelle forme de mĂ©moire, nous avons implĂ©mentĂ© NVCACHE, un cache en mĂ©moire non-volatile qui permet dâaccĂ©lĂ©rer les interactions avec des supports de stockage persistants plus lents, tels que les SSD. Nous montrons que NVCACHE est particuliĂšrement performant pour les tĂąches qui nĂ©cessitent une granularitĂ© Ă©levĂ©e des garanties de persistance, tout en Ă©tant aussi simple Ă utiliser que lâinterface POSIX traditionnelle. ComparĂ© aux systĂšmes de fichiers conçus pour NVMM, NVCACHE peut atteindre un dĂ©bit similaire ou supĂ©rieur lorsque la mĂ©moire non volatile est utilisĂ©e. De plus, NVCACHE permet aux programmes dâexploiter les performances de NVMM sans ĂȘtre limitĂ© par la quantitĂ© de NVMM installĂ©e sur la machine. Un autre changement majeur dans le paysage informatique a Ă©tĂ© la popularitĂ© des systĂšmes distribuĂ©s. Alors que les machines ont individuellement tendance Ă atteindre des limites de performances, lâutilisation de plusieurs machines et le partage des tĂąches sont devenus la nouvelle façon de crĂ©er des ordinateurs puissants. Bien que ce mode de calcul permette dâaugmenter le nombre de CPU utilisĂ©s simultanĂ©ment, il nĂ©cessite une connexion rapide entre les nĆuds de calcul. Pour cette raison, plusieurs protocoles de communication ont implĂ©mententĂ© RDMA, un moyen de lire ou dâĂ©crire directement dans la mĂ©moire dâun serveur distant. RDMA offre de faibles latences et un dĂ©bit Ă©levĂ©, contournant de nombreuses Ă©tapes de la pile rĂ©seau. Cependant, RDMA reste limitĂ© dans ses fonctionnalitĂ©s natives. Par exemple, il nâexiste pas dâĂ©quivalent de multicast pour les fonctions RDMA les plus efficaces. GrĂące Ă un switch programmable (le switch Intel Tofino), nous avons implĂ©mentĂ© un mode spĂ©cial pour RDMA qui permet de lire ou dâĂ©crire sur plusieurs serveurs en mĂȘme temps, sans pĂ©nalitĂ© de performances. Notre systĂšme appelĂ© Byp4ss fait participer le switch aux transferts, en dupliquant les paquets RDMA. GrĂące Ă Byp4ss, nous avons implĂ©mentĂ© un protocole de consensus nommĂ© DISMU. De par sa conception, DISMU est optimal en termes de latence et de dĂ©bit, car il peut rĂ©duire au minimum le nombre de paquets Ă©changĂ©s sur le rĂ©seau pour parvenir Ă un consensus. Enfin, en utilisant ces deux technologies, nous remarquons que les futures gĂ©nĂ©rations de matĂ©riel pourraient nĂ©cessiter une nouvelle interface pour les mĂ©moires de toutes sortes, afin de faciliter lâinteropĂ©rabilitĂ© dans des systĂšmes qui ont tendance Ă devenir de plus en plus hĂ©tĂ©rogĂšnes et complexes.
Abstract :
Modern computers are built around two main parts: their Central Processing Unit (CPU), and their volatile main memory, or Random Access Memory (RAM). The basis of this architecture takes its roots in the 1970âs first computers. Since, this principle has been constantly upgraded to provide more functionnality and performance. In this thesis, we study two memory paradigms that drastically change the way we can interact with memory in modern systems: non-volatile memory and remote memory access. We implement software tools that leverage them in order to make them compatible and exploit their performance with concrete applications. We also analyze the impact of the technologies underlying these new memory medium, and the perspectives of their evolution in the coming years. For non-volatile memory, as the main memory performance is key to unlock the full potential of a CPU, this feature has historically been abandoned on the race for performance. Even if the first computers were designed with non-volatile forms of memory, computer architects started to use volatile RAM for its incomparable performance compared to durable storage, and never questioned this decision for years. However, in 2019 Intel released a new component called Optane DC Persistent Memory (DCPMM), a device that made possible the use of Non-Volatile Main Memory (NVMM). That product, by its capabilities, provides a new way of thinking about data persistence. Yet, it also challenges the hardware architecture used in our current machines and the way we program them. With this new form of memory we implemented NVCACHE, a cache designed for non-volatile memory that helps boosting the interactions with slower persistent storage medias, such as solid state drive (SSD). We find NVCACHE to be quite performant for workloads that require a high granularity of persistence guarantees, while being as easy to use as the traditional POSIX interface. Compared to file systems designed for NVMM, NVCACHE can reach similar or higher throughput when the non-volatile memory is used. In addition, NVCACHE allows the code to exploit NVMM performance while not being limited by the amount of NVMM installed in the machine. Another major change of in the computer landscape has been the popularity of distributed systems. As individual machines tend to reach performance limitations, using several machines and sharing workloads became the new way to build powerful computers. While this mode of computation allows the software to scale up the number of CPUs used simultaneously, it requires fast interconnection between the computing nodes. For that reason, several communication protocols implemented Remote Direct Memory Access (RDMA), a way to read or write directly into a distant machineâs memory. RDMA provides low latencies and high throughput, bypassing many steps of the traditional network stack. However, RDMA remains limited in its native features. For instance, there is no advanced multicast equivalent for the most efficient RDMA functions. Thanks to a programmable switch (the Intel Tofino), we implemented a special mode for RDMA that allows a client to read or write in multiple servers at the same time, with no performance penalty. Our system called Byp4ss makes the switch participate in transfers, duplicating RDMA packets. On top of Byp4ss, we implement a consensus protocol named DISMU, which shows the typical use of Byp4ss features and its impact on performance. By design, DISMU is optimal in terms of latency and throughput, as it can reduce to the minimum the number of packets exchanged through the network to reach a consensus. Finally, by using these two technologies, we notice that future generations of hardware may require a new interface for memories of all kinds, in order to ease the interoperability in systems that tend to get more and more heterogeneous and complex.