Abstract: How can applications best leverage persistent memory? What programming support & tools are available? The existence of NVDIMMs and the expectation of an explosion in capacity has sparked wide interest in these areas. This tutorial will start with a description of persistent memory products such as the upcoming Intel DIMM based on 3D XPoint technology. Next, the tutorial will cover the basic SNIA NVM Programming Model used by operating systems to expose persistent memory to applications. Andy will walk through code examples showing how applications get access to persistent memory and will pay special attention to safe programming practices such as flushing to persistence, atomic operations, and writing power-fail safe code. He will describe how CPU instructions designed for atomic operations, cache flushing, and fencing interact with persistent memory. Andy will then walk through some more complex examples of persistent memory programming in C, C++, and Java. Using the open source NVM Libraries from http://pmem.io, he will show how to solve the common programming pain points and how the higher-level languages can help avoid common persistent memory programming mistakes.
Bio: Andy Rudoff is a Principal Engineer at Intel Corporation, focusing on Non-Volatile Memory programming. He is a contributor to the SNIA NVM Programming Technical Work Group. His more than 30 years industry experience includes design and development work in operating systems, file systems, networking, and fault management at companies large and small, including Sun Microsystems and VMware. Andy has taught various Operating Systems classes over the years and is a co-author of the popular UNIX Network Programming text book.
Authors: <author1 first> <author1 last>, <author1 affiliation>; <author2 first> <author2 last>, <author2 affiliation>; etc.