The Persistent Memory Development Kit

The Persistent Memory Development Kit (PMDK), formerly known as NVML, is a growing collection of libraries (currently ten of them) which have been developed for various use cases, tuned, validated to production quality, and thoroughly documented. These libraries build on the Direct Access (DAX) feature available in both Linux and Windows, which allows applications direct load/store access to persistent memory by memory-mapping files on a persistent memory aware file system. PMDK also includes a collection of tools, examples, and tutorials on persistent memory programming.

To learn more about the latest persistent memory developments for Linux, go to the Persistent Memory Wiki. If you want to learn more about how DAX is made available in Windows, check out this Channel9 video.

What Is Persistent Memory?

For many years computer applications organized their data between two tiers: memory and storage. 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 site focuses specifically on how persistent memory is exposed to applications which explicitly manage the placement of data among the three tiers (volatile memory, persistent memory, and storage).

More Information

See our blog entries for more information. If you’re just starting out, you might find the entry on the overall architecture useful.

The Documents page contains links to additional reading material.

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