Voici les éléments 1 - 2 sur 2
  • Publication
    Accès libre
    Towards new memory paradigms : integrating non-volatile main memory and remote direct memory access in modern systems
    (2024) ; ;
    Thomas, Gaël
    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 oeuvre 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 noeuds 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.