Flat combining for non-volatile main memory
Date
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
The availability of non-volatile random-access memory (NVRAM) spurred interest in its potential as a foundation for high-performance, persistent data structures. Our work focuses on applying and evaluating the flat combining synchronization paradigm on persistent memory systems. We present a novel approach, named persistent flat combining (PFC), along with a simplified version called fast persistent flat combining (FPFC), which is more efficient but has more limited use cases. Our algorithms combine operations from multiple threads into batches, leveraging not only the well-known benefits of general software combining but also the unique characteristics of NVRAM to develop a high-performance, persistent resizable array together with a persistent memory allocator. Our experimental evaluation, conducted on Intel’s Optane persistent memory platform, demonstrates the effectiveness of our implementation and shows substantial performance improvements over traditional locking mechanisms and other state-of-the-art persistent software combining techniques. We show that at high concurrency levels, our approach outperforms detectable flat combining (DFC) by a factor greater than 10 and PBstack (a persistent stack based on PBcomb) by a factor greater than 2.
Die Verfügbarkeit non-volatile random-access memory (NVRAM) weckte das Interesse an seinem Potenzial als Grundlage für hochperformante, persistente Datenstrukturen. Unsere Arbeit konzentriert sich auf die Anwendung und Evaluierung des flat-combining Synchronisationsparadigmas auf persistenten Speichersystemen. Wir präsentieren einen neuen Ansatz, gennant persistent flat combining (PFC), sowie eine vereinfachte Version namens fast persistent flat combining (FPFC), die effizienter ist, aber enger begrenzte Anwendungsmöglichkeiten hat. Unsere Algorithmen kombinieren Operationen von mehreren Threads zu Stapeln und nutzen dabei nicht nur die bekannten Vorteile des allgemeinen Software-Combinings, sondern auch die einzigartigen Eigenschaften von NVRAM, um ein hochleistungsfähiges, persistentes, größenveränderliches Array zusammen mit einem persistenten Allocator zu entwickeln. Unsere experimentelle Auswertung, die auf Intels Optane persistent memory platform durchgeführt wurde, demonstriert die Effektivität unserer Implementierung und zeigt erhebliche Leistungsverbesserungen gegenüber traditionellen Locking-Mechanismen und anderen aktuellen persistenten Software-Combining-Techniken. Wir zeigen, dass unser Ansatz bei hoher Parallelität detectable flat combining (DFC) um einen Faktor von mehr als 10 und PBstack (ein auf PBcomb basierender persistenter Stack) um einen Faktor von mehr als als 2, übertrifft.