Hewlett Packard Labs has developed tools that enable programmers to realize the benefits of Memory-Driven Computing and persistent memory. To simplify the developer experience, we are exposing familiar programming environments like Linux and Portable Operating System Interface APIs with programming languages like C/C++ and Java, making the performance advantages of massive memory on fabrics available to you in a way that lets you be productive quickly.

During the design phase of the prototype, simulations had predicted that the speed of a Memory-Driven Computing architecture would improve current computing by multiple orders of magnitude. Novel programming tools developed to harness massive, shared memory have shown execution speeds improved by up anywhere from 100-8,000 times on a range of workloads in areas such as image search, graph inference and financial modelling.

These results were achieved using simulations of prototype of The Machine project running on existing high-performance HPE systems, such as HPE Integrity Superdome X and HPE ProLiant servers.

Managed Data Structures

A software library for persistent memory programming, which enables developers to declare familiar data structures such as lists and maps as persistent and reuse them across programs and languages, easing programming and data sharing at scale to reap the full benefits of Memory-Driven Computing on The Machine and other persistent memory architectures.

Sparkle

Hewlett Packard Labs is making changes available under the same license as Spark (the Apache 2.0 License), a fast and general cluster computing system for Big Data - and is collaborating with HortonWorks to make these enhancements available in the Spark upstream distribution and through their Enterprise Spark at Scale offering.

Fault-tolerant programming model for non-volatile memory

Performance emulation for non-volatile memory latency and bandwidth

A DRAM-based performance emulation platform that leverages features available in commodity hardware to emulate different latency and bandwidth characteristics of future byte-addressable non-volatile memory technologies.

Allocator Layer for Persistent Shared Memory

Application-transparent Checkpoint with Persistent Memory

System level application-transparent tool for suspending and resuming Linux applications and Docker containers with persistent memory. It optimizes Checkpoint/Restore In Userspace software tool to support fast checkpoint and restore with persistent memory, such as HPE NVDIMMs.

Non-Volatile Memory Manager (NVMM)

Radix Tree

Radix Tree is a user-space library written in C++ that implements a radix tree that relies on fabric-attached memory atomics, which are atomics primitives within a cache-incoherent memory-semantic fabric environment.

Write-Ahead-Logging Library for Non-Volatile DIMMs

Linux for Memory-Driven Computing

Hewlett Packard Labs is adapting the Linux Operating System to support Memory-Driven Computing architectures such as, The Machine project. Modifications to Linux include support for fabric – attached persistent memory, block device abstractions for persistent memory.. Also included is an emulator that can be used by developers to explore the new APIs on industry standard machines.

Fabric Attached Memory Emulation

An environment designed to allow users to explore the new architectural paradigm of The Machine, called Memory-Driven Computing. The emulation employs virtual machines performing the role of “nodes” in The Machine. Explore shared, global memory space and expect it to behave like Memory-Driven Computing on The Machine. Linux for Fabric-Attached Memory Emulation is also available to provide software for The Machine APIs and allow you to explore Memory-Driven Computing using current hardware.