Skip To Main Content
Intel logo - Return to the home page
My Tools

Select Your Language

  • Bahasa Indonesia
  • Deutsch
  • English
  • Español
  • Français
  • Português
  • Tiếng Việt
  • ไทย
  • 한국어
  • 日本語
  • 简体中文
  • 繁體中文
Sign In to access restricted content

Using Intel.com Search

You can easily search the entire Intel.com site in several ways.

  • Brand Name: Core i9
  • Document Number: 123456
  • Code Name: Emerald Rapids
  • Special Operators: “Ice Lake”, Ice AND Lake, Ice OR Lake, Ice*

Quick Links

You can also try the quick links below to see results for most popular searches.

  • Product Information
  • Support
  • Drivers & Software

Recent Searches

Sign In to access restricted content

Advanced Search

Only search in

Sign in to access restricted content.

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.

  • Safari
  • Chrome
  • Edge
  • Firefox

Persistent Memory

Develop innovative solutions with Intel® Optane™ persistent memory to transform your applications and your data center.

 

  • Overview
  • Technical Library

Programming Persistent Memory

A Comprehensive Guide for Developers

Read or Download


Available in Chinese

 English and Chinese versions of the Programming Persistent Memory books

Explore

Step 1: Learn About Persistent Memory Uses

Explore how this technology can address challenges with use case memory.

alt

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 persistent memory.

Get Started

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.

Get Started

Step 5: Prepare for Compute Express Link (CXL)*

CXL* is designed to be the future for memory tiering with a consortium of companies behind the initiative. These assets can help you make the transition:

Path to CXL–Maximizing Business Value for Data Centers

From Intel Optane Persistent Memory to CXL

Show more Show less
  • Get Started
  • Tools
  • Training

Introduction to Persistent Memory Programming

Use the PMDK to create a new application that takes advantage of Intel Optane persistent memory.

View the Library

Operating Modes

Intel Optane persistent memory modules support two operating modes:

  • Memory Mode enables an application to operate on a large pool of volatile memory without modification.
  • App Direct Mode offers a low-latency, byte-addressable pool of persistent memory.

Use the information here to help modify or develop an application with low latency and data persistence.

Key Concepts

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.

PMDK Overview

Configure Development Environments

 

Linux*

Options include emulation or a persistent memory-aware hypervisor, such as QEMU or VMware vSphere* virtual machine.

Configure Intel Optane Persistent Memory

Details

 

Windows*

Choose from several support options for Windows Server* 2019. Access guidance from Microsoft* for Windows Server 2016.

Details

Set Up the PMDK

Download binaries or build from the latest source. The PMDK is sent to many Linux* distribution package repositories.

Linux

Install Using Linux Packages

Install from Source Code

Windows

Install Using vcpkg

User Guides

ndctl

ipmctl

Quick Start Configuration Guide

Get Started with PMDK

Show more Show less

Evaluate

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

Design

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

Get High-Level Language Support

Learn PMDK basics with introductory tutorials and code samples.

C

Code Samples

C++

Hello World

Code Samples

Java*

Hello World for Persistent Collections for Java* (PCJ)

Hello World for Low Level Persistence Library (LLPL)

Java API for Persistent Memory Programming

Code Samples

Debug & Troubleshooting Tools

 

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

 

PMDK Tools

Pmemcheck

Perform dynamic run-time analysis with an enhanced version of Valgrind*.

Pmempool

Manage and analyze persistent memory pools with this stand-alone utility.

Intel® VTune™ Profiler

This premier performance profiler has new capabilities to help you optimize your persistent memory programs.

Free Download
Platform Profiler

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.

I/O Profiling

Identify opportunities to replace disk or SSD-based storage with faster persistent memory.

Intel® Inspector—Persistence Inspector

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

Free Download

Open Source Tools

Manage persistent memory modules, check for programming errors, and evaluate performance.

ndctl

Manage the Linux LIBNVDIMM kernel subsystem.

pmemcheck

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

pmempool

Manage and analyze persistent memory pools with this stand-alone utility.

FIO

Run benchmarks with FIO.

pmembench

Build and run PMDK benchmarks.

Videos

Handling Memory Errors in Persistent Memory Programming

Persistent Memory Programming Tools

Testing PMDK Using FIO Workloads

Videos

View the Library

Video Series: Persistent Memory Developer Training

The Non-Volatile Device Control (ndctl) User Guide

Introduction to PMEMKV

Show more Show less

Webinars

A Persistent Memory Key-Value Data Store for Data Center Workloads

Introduction to Persistent Memory Allocator and Transactions

Provision Intel® Optane™ Persistent Memory in Linux*

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

Build Persistent Memory Applications with RAS

Show more Show less

Persistent Memory Development Kit (PMDK)

This open source kit includes a set of libraries and tools to support software development for this new technology.

alt

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.

alt

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.

alt

Introduction to Persistent Collections for Java*

Learn how to instantiate, store, and fetch persistent data after a power cycle.

alt

Create a Persistent Memory-Aware Queue

Make queue operations transactional to prevent persistent memory corruption. Core concepts are demonstrated in sample code.

alt

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.

Show more Show less
  • Company Overview
  • Contact Intel
  • Newsroom
  • Investors
  • Careers
  • Corporate Responsibility
  • Inclusion
  • Public Policy
  • © Intel Corporation
  • Terms of Use
  • *Trademarks
  • Cookies
  • Privacy
  • Supply Chain Transparency
  • Site Map
  • Recycling
  • Your Privacy Choices California Consumer Privacy Act (CCPA) Opt-Out Icon
  • Notice at Collection

Intel technologies may require enabled hardware, software or service activation. // No product or component can be absolutely secure. // Your costs and results may vary. // Performance varies by use, configuration, and other factors. Learn more at intel.com/performanceindex. // See our complete legal Notices and Disclaimers. // Intel is committed to respecting human rights and avoiding causing or contributing to adverse impacts on human rights. See Intel’s Global Human Rights Principles. Intel’s products and software are intended only to be used in applications that do not cause or contribute to adverse impacts on human rights.

Intel Footer Logo