At January’s SNIA Persistent Memory Summit Intel was promoting a book titled: Programming Persistent Memory. This book, aimed at programmers, explains how to develop applications programs that take advantage of persistent memory (PM) to avoid slower persists to SSDs, and also shows how to use Intel’s Optane DIMMs to increase a system’s main memory size.
On the software side the book explains how to design and optimize data structures for persistent memory, and it details persistent memory Application Program Interfaces (APIs) for C, C++, JavaScript, and other languages. It also provides a trove of information on the open source Persistent Memory Development Kit (PMDK) libraries and tools. The book shows numerous source code samples and examples that you can run on your own systems, and provides diagrams that help explain the various structures and processes embodied by the software. It also explains how PM applications are designed and debugged using (among other tools) the Intel Inspector runtime debugger, shown in the screenshot below.
From the hardware side the book explains how PM works and where it fits within a system, discusses Remote Direct Memory Access (RDMA) with persistent memory, and reviews security features.
So what’s inside? The first four chapters of the 457-page tome explain the concept of PM, how operating systems support it, and how programs work with it. The next five chapters describe a number of software tools that have been developed to support PM, including the PM Development Kit (PMDK) and the various libraries of support software. Chapter 10 covers PM when it’s used as volatile memory. Chapters 11-13 cover software design & debug and the use of PM in real-world software, and the remaining six chapters cover an assortment of topics including reliability and serviceability, performance metrics, concurrency, etc.
As a non-programmer I was particularly tickled by the title of Chapter 8: “libpmemobj-cpp: The Adaptable Language – C++ and Persistent Memory”. You’ll either have to read the chapter yourself or ask someone else what that might mean! The SSD Guy certainly can’t tell you!
A pdf copy of the book can be downloaded for free (a print copy sells for $50) and you don’t even have to register to download it. Simply visit https://pmem.io/book/ for either the download or to order a print copy.