pmem / pmdk

Persistent Memory Development Kit
https://pmem.io
Other
1.34k stars 510 forks source link
pmdk pmem

PMDK: Persistent Memory Development Kit

Nightly Scans Coverage PMem test Pmem RAS Docker rebuild

The Persistent Memory Development Kit (PMDK) is a collection of libraries and tools for System Administrators and Application Developers to simplify managing and accessing persistent memory devices. For more information, see https://pmem.io.

To install PMDK libraries please clone the tree and build it yourself. Specific installation instructions are outlined below.

Pre-built packages can be found in popular Linux distribution package repositories but we do not keep them anymore up to date because of the limited resources.

Bugs and feature requests for this repo are tracked in our GitHub Issues Database.

Contents

  1. Libraries and Utilities
  2. Getting Started
  3. Version Conventions
  4. Building and installing
  5. Experimental Supports
  6. Archived and deprecated libraries
  7. Contact Us

Libraries and Utilities

All PMDK related libraries are described in detail on pmem.io/pmdk.

Libraries available in this repository:

Utilities available in this repository:

Currently, these libraries and utilities only work on 64-bit Linux.

See our LICENSE file for information on how these libraries are licensed.

Getting Started

Getting Started with Persistent Memory Programming is a tutorial series created by Intel architect, Andy Rudoff. In this tutorial, you will be introduced to persistent memory programming and learn how to apply it to your applications.

Additionally, we recommend reading Introduction to Programming with Persistent Memory from Intel

Version Conventions

Building and installing

Install a few dependencies and then build and install PMDK in the system.

# get the source code
git clone https://github.com/pmem/pmdk
cd pmdk
# build
make -j
# install (optionally)
sudo make install

If experience any issues or looking for additional options, check out the INSTALL.md file or contact us.

Experimental Supports

Experimental Support for 64-bit ARM and RISC-V

There is initial support for 64-bit ARM and RISC-V processors provided. It is currently not validated nor maintained. Thus, these architectures should not be used in a production environment.

Experimental Support for PowerPC

There is initial support for ppc64le processors provided. It is currently not validated nor maintained. Thus, this architecture should not be used in a production environment.

The on-media pool layout is tightly attached to the page size of 64KiB used by default on ppc64le, so it is not interchangeable with different page sizes, includes those on other architectures. For more information on this port, contact Rajalakshmi Srinivasaraghavan (rajis@linux.ibm.com) or Lucas Magalhães (lucmaga@gmail.com).

Archived and deprecated libraries

Contact Us

For more information on this library, contact Tomasz Gromadzki (tomasz.gromadzki@intel.com), Jan Michalski (jan.michalski@intel.com), Oksana Sałyk (oksana.salyk@intel.com), Piotr Balcer (piotr.balcer@intel.com), Andy Rudoff (andy.rudoff@intel.com), or post to the Persistent Memory Programming Google group.