Tutorial: Persistent Memory Workshop and Hackathon
It’s rare that there is a significant change in computer architecture, especially one that is nearly immediately pervasive across the breadth of a market segment. It’s even more rare when a fundamental change such as this is supported in a way that software developers can quickly adapt to existing software architecture. Most significant transitions require a ground-up rethink to achieve performance or reliability gains, and the cost-benefit analysis generally pushes a transition to the new thing be measured in multiple revisions as opposed to one, big jump.
In the last decade the growth of persistent memory has bucked this trend. The introduction of the solid-state disk made an immediate impact on existing software, especially in the server market. Any program that relied on multiple, small-data, read/write cycles to disk recognized significant performance increases. In cases such as multi-tiered databases, the software found a, “new tier,” of storage nearly automatically and started partitioning data to it. In an industry where innovation takes years, improvement took a matter of months to proliferate across new deployments.
While the SSD is now a standard consideration there is unexplored opportunity in solid-state storage. The NVDIMM form factor has been in existence for quite some time, providing data persistence significantly closer to processing units in the modern server and workstation. Many developers, however, are not aware that programming models already exist to easily incorporate some simple performance and reliability, both for byte and block access in programs. Moreover, new innovations of persistent memory are on the horizon that will increase the density and performance of DIMM form factors.
The Storage and Networking Industry Association (SNIA) is offering a persistent memory programming hackathon in a variety of venues in 2019, and is offering a session at NVMW. This three-hour program is designed to provide software developers an understanding of the various tiers and modes of persistent memory and what existing methods are available to access them.
Attendees will require a network accessible laptop installed with an SSH client of your choice. Access to remote virtual and physical systems and to the course materials (including source code) will be provided in the class. A variety of mentors will be available to provide tutorials and help attendees develop sample code based on open-source PM found in the Linux Kernel, PMDK.io and other interfaces. Attendees will leave the workshop with a better understanding of how of how to use existing APIs to program persistent memory, as well as where it might benefit further research and development.
The tutorial will be on Sunday afternoon in main ball room. See the program for details.