By signing in, you agree to our Terms of Service.
Forgot your Intelusername
Frequently Asked Questions
Do you work for Intel?
Sign in here.
Don’t have an Intel account? Sign up here
for a basic account.
You can easily search the entire Intel.com site in several ways.
You can also try the quick links below to see results for most popular searches.
The browser version you are using is not recommended for this site.Please consider upgrading to the latest version of your browser by clicking one of the following links.
Develop innovative solutions with Intel® Optane™ DC persistent memory to transform your applications and your data center.
A Comprehensive Guide for Developers
Read or Download
Available in Chinese
Step 1: Learn About Persistent Memory Uses
Explore how this technology can address challenges with use case memory.
Step 2: Analyze Your Application
Use the Platform Profiler for Intel® VTune™ Profiler to learn how your application can benefit from large capacity persistent or volatile memory.
Try Platform Profiler
Free Download of Intel VTune Profiler
Step 3: Configure Your Platform
Provision Intel Optane DC persistent memory.
Quick Start Guide
Provision Persistent Memory in Linux*
Step 4: Develop Software with the Persistent Memory Development Kit (PMDK)
Use this set of libraries and tools to begin developing persistent memory solutions.
Use the PMDK to create a new application that takes advantage of Intel Optane DC persistent memory.
View the Library
Intel Optane DC persistent memory modules support two operating modes:
Use the information here to help modify or develop an application with low latency and data persistence.
Programming to byte-addressable persistent memory requires new ways of thinking about data persistence and consistency.
What You Need to Know
About the PMDK
The PMDK is an open source collection of libraries and tools designed to simplify development, debugging, and management of persistent memory-aware applications.
Options include emulation or a persistent memory-aware hypervisor, such as QEMU or VMware vSphere* virtual machine.
Configure Intel Optane DC Persistent Memory
Choose from several support options for Windows Server* 2019. Access guidance from Microsoft* for Windows Server 2016.
Download binaries or build from the latest source. The PMDK is sent to many Linux* distribution package repositories.
Install Using Linux Packages
Install from Source Code
Install Using vcpkg
Quick Start Configuration Guide
Get Started with PMDK
Analyze the entire system to identify configuration issues and workloads that can benefit from persistent memory or analyze individual applications to determine optimization opportunities.
System View: Intel VTune Profiler—Platform Profiler
Application View: Intel VTune Profiler—Memory Analysis
Plan for persistence with these step-by-step guides that illustrate programming concepts.
A Simple grep Example
A Fault-Tolerant Algorithm for MapReduce
Create a MySQL* Storage Engine
Learn PMDK basics with introductory tutorials and code samples.
Hello World for Persistent Collections for Java* (PCJ)
Hello World for Low Level Persistence Library (LLPL)
Java API for Persistent Memory Programming
Tools from Intel
Find persistence errors quickly with Intel® Inspector—Persistence Inspector.
Detect Programming Errors with Cache Management
Find Out-of-Order Stores in Your Persistent Memory Program
Perform dynamic run-time analysis with an enhanced version of Valgrind*.
Manage and analyze persistent memory pools with this stand-alone utility.
This premier performance profiler has new capabilities to help you optimize your persistent memory programs.
Analyze systems over longer intervals. Find out which workloads can benefit from larger memory allocations and which system configuration better fits the workloads.
Memory Access Profiling
Locate code that is sensitive to memory bandwidth and latency issues. Identify hot, warm, or cool data to optimize memory usage and placement.
Identify opportunities to replace disk or SSD-based storage with faster persistent memory.
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.
How to Detect Errors
Manage persistent memory modules, check for programming errors, and evaluate performance.
Manage the Linux LIBNVDIMM kernel subsystem.
Perform a dynamic runtime analysis with an enhanced version of Valgrind*.
Run benchmarks with FIO.
Build and run PMDK benchmarks.
Handling Memory Errors in Persistent Memory Programming
Persistent Memory Programming Tools
Testing PMDK Using FIO Workloads
Video Series: Persistent Memory Developer Training
Video Series: Get Started with Persistent Memory Programming
The Non-Volatile Device Control (ndctl) User Guide
Introduction to PMEMKV
A Persistent Memory Key-Value Data Store for Data Center Workloads
Introduction to Persistent Memory Allocator and Transactions
Provision Intel® Optane™ DC Persistent Memory in Linux*
C++ Programming and the Persistent Memory Development Kit (PMDK)
Optimize Apps for the Next Generation of Memory
Performance Guidelines for Intel® Optane™ Persistent Memory
Persistent Memory Programming with Java*
Build Durable Storage Solutions with Intel Optane Persistent Memory: Part 1
Build Durable Storage Solutions with Intel Optane Persistent Memory: Part 2
Enable Persistent Memory in Cloud Software Architectures
Build Persistent Memory Applications with RAS
Boost Your C++ Applications with Persistent Memory
This code sample demonstrates using the C++ bindings of libpmemobj to convert a simplified version of grep, the Unix* command-line utility, to use persistent memory.
Implement a Fault-Tolerant Algorithm
This code sample uses libpmemobj C++ bindings to demonstrate how to implement fault tolerance in a PMEM version of the famous MapReduce algorithm.
Introduction to Persistent Collections for Java*
Learn how to instantiate, store, and fetch persistent data after a power cycle.
Create a Persistent Memory-Aware Queue
Make queue operations transactional to prevent persistent memory corruption. Core concepts are demonstrated in sample code.
Panaconda: A Persistent Memory Version of the Game Snake
This code sample demonstrates PMDK APIs for pools, pointers, and transactions, as well as shows you how to build and run the game.
PMAN: A Persistent Memory Version of the Game Pac-Man*
The PMAN code sample highlights program design, persistent memory pools, pointers, and transactions. Like Panaconda, you can run the example.