Persistent Memory Developer Hub

Learn, build, and deploy persistent memory features in your application using an extensive collection of resources, examples, structured tutorials, webinars, forums, and API documentation.

The PMDK repository on GitHub is the ultimate source of information on PMDK from release 2.0! For all questions and to submit eventual issues please follow to that repository. The PMDK documentation collected here should be valid up to the 1.13.1 release but is maintained only on a best-effort basis and may not reflect the latest state of the art.

Build with Persistent Memory

Utilize the extensive array of libraries available from low-level to highly abstracted across a broad set of programming languages.

Master Persistent Memory Programming

Whether you’re beginning your learning journey about persistent memory or you want to dive deeper into the programming details, Programming Persistent Memory is a great resource that with information for everyone. The book is available in English, Simplified Chinese, and Korean languages.

Get your FREE eBook
Master Persistent Memory Programming

For Developers

Persistent Memory Key-Value Store (PMemKV)

pmemkv is a local/embedded key-value datastore optimized for persistent memory that provides options for language bindings and pluggable storage engines.

Learn more

Persistent Memory Development Kit (PMDK)

A collection of libraries and tools that allow developers to rapidly integrate persistent memory into new or existing applications.

Learn more

Low-Level Persistence Library for Java (LLPL)

The Low-Level Persistence Library (LLPL) is a Java library that provides access to off- heap persistent memory. LLPL includes several kinds of components that can be allocated and used in building applications.

Learn more

Persistent Collections for Java (PCJ)

PCJ is a library for Java objects stored in persistent memory. Persistent collections are emphasized because many applications for persistent memory map well for collections.

Learn more

Engage with the Community

Learning from peers and experts is a great way to engage with the community. Use the persistent memory social ecosystem to ask questions, help others, or talk shop.

Join the Forum Discuss on Slack
Engage with the Community
Tutorials and Examples

Tutorials and Examples

Learning by example with code samples developed by experts. Copy the code, customize it to meet your needs, and deploy it in your application.

Code Samples Our Blog Intel Developer Zone Webinars

Developer tools

A wide range of tools are available that allow you to inspect, analyze, debug, and collect performance data of the platform and application(s).

Manage and monitor direct access (DAX) devices backed by persistent memory. Create, destroy, and convert dax devices for use with the Linux Kernel and applications.

Admin

daxio is a standalone utility that can transfer data to or from DAX devices, or erase data from a device.

Admin

This tool finds persistence errors quickly to make software fast and reliable. It checks that all caches only flush once to persistent memory and written in the correct order.

Debug, Analysis

ipmctl is an open source utility to discover, configure, and manage Intel® Optane™ persistent memory modules. ipmctl, works on both Linux and Windows.

Admin, Hardware

Manage and monitor non-volatile memory devices in Linux. Create and manage dimms, regions, and namespaces, update firmware, perform secure erase operations, and much more!

Admin

Perform a dynamic runtime analysis with an enhanced version of Valgrind.

Admin, Debug

Use the Platform Profiler for Intel® VTune™ Profiler to view performance metrics and learn how your application can benefit from large capacity persistent or volatile memory.

Performance, Debug, Analysis

Profile application memory accesses to identify code and code paths that are sensitive to memory bandwidth and latency issues. Identify hot, warm, or cool data to optimize memory usage and placement.

Performance, Debug, Analysis

perf and eBPF are performance analyzing, tracing, and profiling tools in Linux for hardware, the Kernel, and applications.

Performance, Debug, Analysis

Use the open-source Flexible I/O Tester (FIO) utility to run benchmarks against persistent memory devices and file systems.

Benchmark

Processor Counter Monitor (PCM) is an API and a set of tools to monitor the performance and energy metrics of Intel® CPUs. PCM runs on Linux and Windows. pcm-memory monitors memory bandwidth per channel and per DIMM for DDR and persistent memory.

Performance, Monitoring

The pmdk-convert tool converts the specified memory pool from an old layout version to the newest one supported by this tool.

Admin

Run benchmarks using libraries from the Persistent Memory Development Kit.

Benchmark

Benchmark for pmemkv and its underlying libraries, based on LevelDB’s db_bench.

Benchmark

Manage, analyze, troubleshoot, and debug persistent memory pools with this utility.

Admin

The pmreorder is a utility that performs a consistency check of a persistent program.

Admin, Debug

Valgrind is an instrumentation framework for building dynamic analysis tools. Valgrind tools can automatically detect many memory management and threading bugs and profile your programs in detail. Use the pmemcheck utility with persistent memory.

Debug, Analysis

Show your work

Did you build something that uses persistent memory? Share your story and wisdom with the community.

Share

Events

Join PMem experts and ISVs at upcoming events or watch replays of past events.

More Events