Author: System Software Research Group, Hewlett Packard Labs
Contact: Daniel Feldman (daniel.feldman@hpe.com)
Hewlett Packard Labs has developed tools that enable programmers to realize the full benefits of Memory Driven Computing (MDC) and persistent memory. Current HPE Superdome X machines feature massive, multi-terabyte memories and hundreds of processor cores, and current HPE servers feature persistent memory implemented with NVDIMMs; future persistent memory products may employ non-volatile memory (NVM) device technologies such as Memristor. Fabric-attached memory (FAM) promises to scale far beyond today's cache-coherent shared memory while preserving the convenience of byte-addressable memory.
This repository provides a unified entry point to several Hewlett Packard Labs tools and technologies related to MDC and persistent memory. We welcome comments and feedback. For help and support issues, please contact daniel.feldman@hpe.com.
Here are entry points to documentation on the individual tools in the current release:
- Guide for Newcomers
- Guide to FAME: Instructions on setting up Fabric-Attached Memory Emulation (FAME)
- Managed Data Structures (MDS): Multi-process sharing of data structures in persistent memory
- Multi-Process Garbage Collector (MPGC): Multi-process fault-tolerant automatic persistent memory management
- ALPS: Allocator Layer for Persistent Shared Memory
- CRIU-PMEM: Checkpoint/Restore with Persistent Memory
- Shoveller: Scalable, memory-capacity-efficient Key-Value Store for very large-scale servers
- NVMM: Non-Volatile Memory Manager (NVMM)
- Radix Tree: Space-optimized trie library based on FAM atomics
- libnvwal: Write-Ahead-Logging Library for Non-Volatile DIMMs
- Atlas: Programming persistent memory with crash resilience
- FOEDUS: Fast Optimistic Engine for Data Unification Services
- NVthreads: Practical Persistence for Multi-threaded Applications
