Persistent Memory Programming Abstractions in Context of Concurrent Applications

Abstract : 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.
Type de document :
Pré-publication, Document de travail
Accepted in HiPC SRS 2017. 2017
Liste complète des métadonnées
Contributeur : Marc Shapiro <>
Soumis le : mardi 19 décembre 2017 - 15:40:19
Dernière modification le : jeudi 22 novembre 2018 - 14:33:22

Lien texte intégral


  • HAL Id : hal-01667772, version 1
  • ARXIV : 1712.04989


Ajay Singh, Marc Shapiro, Gaël Thomas. Persistent Memory Programming Abstractions in Context of Concurrent Applications. Accepted in HiPC SRS 2017. 2017. 〈hal-01667772〉



Consultations de la notice