This site is focused on making persistent memory programming easier. The current focus is on the NVM Library, which is a library (set of libraries, actually) designed to provide some useful APIs for server applications wanting to use persistent memory. You can read more about the NVM Library or go directly to the source. Contributions are welcome!

The NVM Library builds on the Direct Access (DAX) changes under development in Linux. Check out the Persistent Memory Wiki for the link to the latest snapshot of this work, and for all the other information related to persistent memory enabling in Linux.

What Is It?

For many years computer applications organized their data between two tiers: memory and storage. We believe the emerging persistent memory technologies introduce a third tier. Persistent memory (or pmem for short) is accessed like volatile memory, using processor load and store instructions, but it retains its contents across power loss like storage.

This project focuses specifically on how persistent memory is exposed to server-class applications which will explicitly manage the placement of data among the three tiers (volatile memory, persistent memory, and storage). This project is not looking at client or mobile uses of persistent memory, which are more likely to be transparent to the applications (at least, we’re not focusing on that yet). The first focus is to expose the capabilities of this new technology and provide software to help applications exploit it.

More Information

See our blog entries for more information, especially the entry on the overall architecture for persistent memory programming and the entry containing references to more information.

Your questions, comments, and contributions are welcome! Join our Google Group find us on IRC on the #pmem channel on OFTC.