How Should We Program Non-volatile Memory?
When: June 16, 2016 (9:00am-12:00pm)
Where: PLDI 2016, Santa Barbara, CA
Memristor, phase-change memory, and other emerging non-volatile memory (NVM) technologies will provide disk-like persistence but at DRAM-like latency. These NVM devices will allow applications to directly manipulate data via memory instructions, thus blurring the distinction between in-memory versus on-disk representations. How should developers write programs to benefit from non-volatile memory, and improve application performance? This tutorial will introduce participants to expected features in NVM devices, the research challenges associated with programming non-volatile memory, and survey software based solutions. We will cover issues related to the presence of volatile caches, consistency of persistent data, and the associated overheads. We will briefly review prior research on persistent programming such as persistent programming languages and orthogonal persistence, and then describe recent advances such as durable transactions and persistence for lock-based programs.
Presenters
-
Dhruva Chakrabarti
HP Labs -
Haris Volos
HP Labs -
Indrajit Roy
HP Labs
Outline
- Module 1:
- Introduction to persistent memory
- Prior work on persistent programming model
- Module 2:
- Persistency models and hardware characteristics
- Module 3:
- Programming models for persistent memory: Mnemosysne, NV-Heaps, Atlas
- Ongoing work on persistent memory
- Q/A and brainstorming