Persistent Memory Programming Abstractions in Context of Concurrent Applications

12/13/2017
by   Ajay Singh, et al.
0

The advent of non-volatile memory (NVM) technologies like PCM, STT, memristors and Fe-RAM is believed to enhance the system performance by getting rid of the traditional memory hierarchy by reducing the gap between memory and storage. This memory technology is considered to have the performance like that of DRAM and persistence like that of disks. Thus, it would also provide significant performance benefits for big data applications by allowing in-memory processing of large data with the lowest latency to persistence. Leveraging the performance benefits of this memory-centric computing technology through traditional memory programming is not trivial and the challenges aggravate for parallel/concurrent applications. To this end, several programming abstractions have been proposed like NVthreads, Mnemosyne and intel's NVML. However, deciding upon a programming abstraction which is easier to program and at the same time ensures the consistency and balances various software and architectural trade-offs is openly debatable and active area of research for NVM community. We study the NVthreads, Mnemosyne and NVML libraries by building a concurrent and persistent set and open addressed hash-table data structure application. In this process, we explore and report various tradeoffs and hidden costs involved in building concurrent applications for persistence in terms of achieving efficiency, consistency and ease of programming with these NVM programming abstractions. Eventually, we evaluate the performance of the set and hash-table data structure applications. We observe that NVML is easiest to program with but is least efficient and Mnemosyne is most performance friendly but involves significant programming efforts to build concurrent and persistent applications.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/26/2020

Persistence and Synchronization: Friends or Foes?

Emerging non-volatile memory (NVM) technologies promise memory speed byt...
research
06/27/2018

Performance and Programming Effort Trade-offs of Android Persistence Frameworks

A fundamental building block of a mobile application is the ability to p...
research
10/02/1998

Pre-fetching tree-structured data in distributed memory

A distributed heap storage manager has been implemented on the Fujitsu A...
research
09/23/2019

RECIPE : Converting Concurrent DRAM Indexes to Persistent-Memory Indexes

We present Recipe, a principled approach for converting concurrent DRAM ...
research
05/15/2023

Blizzard: Adding True Persistence to Main Memory Data Structures

Persistent memory (PMEM) devices present an opportunity to retain the fl...
research
01/26/2018

White-box methodologies, programming abstractions and libraries

This deliverable reports the results of white-box methodologies and earl...
research
01/26/2018

D2.2 White-box methodologies, programming abstractions and libraries

This deliverable reports the results of white-box methodologies and earl...

Please sign up or login with your details

Forgot password? Click here to reset