The availability of Non-Volatile Memory DRAM (known as NVMM) enables the design of recoverable concurrent algorithms. We study the power of software combining in achieving recoverable synchronization and designing persistent data structures. Software combining is a general synchronization approach, which attempts to simulate the ideal world when executing synchronization requests (i.e., requests that must be executed in mutual exclusion). A single thread, called the combiner, executes all active requests, while the rest of the threads are waiting for the combiner to notify them that their requests have been applied. Software combining significantly decreases the synchronization cost and outperforms many other synchronization techniques in various cases.
We identify several parameters, crucial for performance, that an algorithm’s designer has to take into consideration when building highly-efficient persistent synchronization protocols or data structures. For instance, as a recoverable implementation often inherents the synchronization overheads of the concurrent implementation it is inspired from, persistence should not be added on top of heavy software combining protocols (such as OyamaAlg or flat-combining), universal constructions, or transactional memory (TM) systems. Moreover, care should be taken to minimize the persistence overhead not only by reducing the amount of data to be flushed but also the way this flushing is performed.
The paper distills these observations to build recoverable software combining protocols that exhibit much better performance (many times faster) and lower persistence cost, in comparison to a large collection of existing persistent techniques for achieving scalable synchronization. We also built fundamental recoverable data structures, such as stacks and queues, based on these protocols that outperform by far existing recoverable implementations of such data structures.
Tue 5 AprDisplayed time zone: Eastern Time (US & Canada) change
12:50 - 13:35 | |||
12:50 15mTalk | FliT: A Library for Simple and Efficient Persistent Algorithms Main Conference Yuanhao Wei Carnegie Mellon University, USA, Naama Ben-David VMware, Michal Friedman Technion, Israel, Guy E. Blelloch Carnegie Mellon University, USA, Erez Petrank Technion | ||
13:05 15mTalk | The Performance Power of Software Combining in Persistence Main Conference Panagiota Fatourou FORTH ICS and University of Crete, Greece, Nikolaos Kallimanis Institute of Computer Science, Foundation for Research & Technology - Hellas, Eleftherios Kosmas Department of Computer Science, University of Crete, Greece | ||
13:20 15mTalk | Understanding and Detecting Deep Memory Persistency Bugs in NVM Programs with DeepMC Main Conference |