26
14 th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018 Intel

14th PERSISTENT MEMORY PROGRAMMING · 14th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018. Intel

  • Upload
    others

  • View
    23

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 14th PERSISTENT MEMORY PROGRAMMING · 14th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018. Intel

14th ANNUAL WORKSHOP 2018

PERSISTENT MEMORY PROGRAMMINGAndy Rudoff

April 10, 2018Intel

Page 2: 14th PERSISTENT MEMORY PROGRAMMING · 14th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018. Intel

PERSISTENT MEMORY…

What is it?

Why is it interesting?

How does a program use it?

What are the challenges?

What’s the state of the ecosystem?

2 OpenFabrics Alliance Workshop 2018

Page 3: 14th PERSISTENT MEMORY PROGRAMMING · 14th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018. Intel

PERSISTENT MEMORY…

What is it?

Why is it interesting?

How does a program use it?

What are the challenges?

What’s the state of the ecosystem?

3 OpenFabrics Alliance Workshop 2018

Page 4: 14th PERSISTENT MEMORY PROGRAMMING · 14th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018. Intel

PROGRESSION OF STORAGE

4 OpenFabrics Alliance Workshop 2018

PCIe~6 GB/s(read)

SSDs~300MB/s

(read) HDDs~120MB/s

Latency

Bandwidth

PCIe~65us(read)

SSDs~75us(read)

HDDs~2 ms

Persistent Memory

Page 5: 14th PERSISTENT MEMORY PROGRAMMING · 14th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018. Intel

DEFINITION OF PERSISTENT MEMORY

Byte-addressable•As far as the programmer is concerned Load/Store access

•Not demand-pagedMemory-like performance

•Would reasonably stall a CPU load waiting for pmem Probably DMA-able

• Including RDMA

For modeling, think: Battery-backed DRAM

5 OpenFabrics Alliance Workshop 2018

Page 6: 14th PERSISTENT MEMORY PROGRAMMING · 14th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018. Intel

PERSISTENT MEMORY…

What is it?

Why is it interesting?

How does a program use it?

What are the challenges?

What’s the state of the ecosystem?

6 OpenFabrics Alliance Workshop 2018

Page 7: 14th PERSISTENT MEMORY PROGRAMMING · 14th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018. Intel

EMERGING TECHNOLOGY

3D XPoint™• Persistent, Large Capacity & Byte Addressable• 6 TB per two-socket system• DDR4 Socket Compatible • Can Co-exist with Conventional DDR4 DRAM DIMMs• Demonstrated at SAP Sapphire and Oracle Open World 2017 • Cheaper than DRAM• Availability: 2018

7 OpenFabrics Alliance Workshop 2018

Page 8: 14th PERSISTENT MEMORY PROGRAMMING · 14th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018. Intel

OPTIMIZED SYSTEM INTERCONNECT

OpenFabrics Alliance Workshop 20188

Reach full potential of 3D XPoint™ Technology by connecting it as Memory

Sources: “Storage as Fast as the rest of the system” 2016 IEEE 8th International Memory Workshop and measurement, Intel® Optane™ SSD measurements and Intel P3700 measurements, and technology projections

(4k)

Page 9: 14th PERSISTENT MEMORY PROGRAMMING · 14th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018. Intel

THE VALUE OF PERSISTENT MEMORY

Data sets addressable with no DRAM footprint•At least, up to application if data copied to DRAM Typically DMA (and RDMA) to pmem works as

expected• RDMA directly to persistence – no buffer copy required! The “Warm Cache” effect

•No time spend loading up memory Byte addressable Direct user-mode access

•No kernel code in data path

9 OpenFabrics Alliance Workshop 2018

Page 10: 14th PERSISTENT MEMORY PROGRAMMING · 14th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018. Intel

TRANSPARENCY LEVELS

10 OpenFabrics Alliance Workshop 2018

UserSpace

KernelSpace

Application

3D XPoint

Driver

File System

Increasingbarrier toadoption

block storage

in-kernel usages

file systems

librariesmiddleware

application

Page 11: 14th PERSISTENT MEMORY PROGRAMMING · 14th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018. Intel

TRANSPARENCY LEVELS

11 OpenFabrics Alliance Workshop 2018

UserSpace

KernelSpace

Application

3D XPoint

Driver

File System

Increasingleverage

block storage

in-kernel usages

file systems

librariesmiddleware

application

Page 12: 14th PERSISTENT MEMORY PROGRAMMING · 14th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018. Intel

PERSISTENT MEMORY…

What is it?

Why is it interesting?

How does a program use it?

What are the challenges?

What’s the state of the ecosystem?

12 OpenFabrics Alliance Workshop 2018

Page 13: 14th PERSISTENT MEMORY PROGRAMMING · 14th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018. Intel

THE STORAGE STACK (50,000 FOOT VIEW)

OpenFabrics Alliance Workshop 201813

UserSpace

KernelSpace

StandardFile API

Driver

Application

File System

Application

StandardRaw Device

Access

Management Library

Management UI

Storage

Page 14: 14th PERSISTENT MEMORY PROGRAMMING · 14th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018. Intel

fd = open(“/my/file”, O_RDWR);…count = read(fd, buf, bufsize);…count = write(fd, buf, bufsize);…close(fd);

PROGRAMMER’S VIEW

OpenFabrics Alliance Workshop 201814

“Buffer-Based”

Page 15: 14th PERSISTENT MEMORY PROGRAMMING · 14th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018. Intel

MEMORY-MAPPED FILES

OpenFabrics Alliance Workshop 201815

fd = open(“/my/file”, O_RDWR);…base = mmap(NULL, filesize, PROT_READ|PROT_WRITE,

MAP_SHARED, fd, 0);close(fd);…base[100] = ‘X’;strcpy(base, “hello there”);*structp = *base_structp;…

“Load/Store”

Page 16: 14th PERSISTENT MEMORY PROGRAMMING · 14th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018. Intel

THE PROGRAMMING MODEL

OpenFabrics Alliance Workshop 201816

NVDIMMs

UserSpace

KernelSpace

StandardFile API

NVDIMM Driver

Application

File System

ApplicationApplication

StandardRaw Device

Access

Storage File Memory

Load/Store

Management Library

Management UI

StandardFile API

Mgmt.

pmem-AwareFile System

MMUMappings

“DAX”

Page 17: 14th PERSISTENT MEMORY PROGRAMMING · 14th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018. Intel

PERSISTENT MEMORY…

What is it?

Why is it interesting?

How does a program use it?

What are the challenges?

What’s the state of the ecosystem?

17 OpenFabrics Alliance Workshop 2018

Page 18: 14th PERSISTENT MEMORY PROGRAMMING · 14th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018. Intel

CHALLENGES

Allocation• Like malloc/free, but persistent memory aware

Consistency across failure• Memory-resident data structures, but transactional updates

DMA and RDMA• “just works” if persistence doesn’t matter• Gets interesting when persistence matters

• See Tom’s talk on this next

18 OpenFabrics Alliance Workshop 2018

Page 19: 14th PERSISTENT MEMORY PROGRAMMING · 14th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018. Intel

THE PLATFORM HARDWARE

OpenFabrics Alliance Workshop 201819

WPQ

ADR-or-

WPQ Flush (kernel only)

Core

L1 L1

L2

L3

WPQ

MOV

DIMM

CPU

CAC

HES

CLWB + fence-or-

CLFLUSHOPT + fence-or-

CLFLUSH-or-

NT stores + fence-or-

WBINVD (kernel only)

Minimum RequiredPower fail protected domain:

Memory subsystem

CustomPower fail protected domainindicated by ACPI property:

CPU Cache Hierarchy

Page 20: 14th PERSISTENT MEMORY PROGRAMMING · 14th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018. Intel

PERSISTENT MEMORY…

What is it?

Why is it interesting?

How does a program use it?

What are the challenges?

What’s the state of the ecosystem?

20 OpenFabrics Alliance Workshop 2018

Page 21: 14th PERSISTENT MEMORY PROGRAMMING · 14th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018. Intel

ECOSYSTEM

OpenFabrics Alliance Workshop 201821

OS Detection of NVDIMMs ACPI 6.0+

OS Exposes pmem to appsDAX provides SNIA Programming ModelFully supported:

• Linux (ext4, XFS)• Windows (NTFS)

OS Supports Optimized FlushSpecified, but evolving (ask when safe)

• Linux: safe with MAP_SYNC• Windows: safe

Remote Flush Proposals under discussion(works today with extra round trip)

Deep Flush In latest specification (SNIA NVMP and ACPI)

Transactions, Allocators PMDK: http://pmem.ioC, C++, Java (early access), Python (very early access)

Virtualization All VMMs planning to support PM in guest(KVM changes upstream, Xen in review, others too…)

Page 22: 14th PERSISTENT MEMORY PROGRAMMING · 14th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018. Intel

PERSISTENT MEMORY DEVELOPER KIT (PMDK)

http://pmem.io

PMDK Provides a Menu of Libraries• Instead of re-inventing the wheel

• PMDK libraries are fully validated• PMDK libraries are tuned for Intel hardware• Accelerates ISV readiness

• Developers pull in just what they need• Transaction APIs• Persistent memory allocators

PMDK Provides Tools for Developers PMDK is Open Source and Product-Neutral

22 OpenFabrics Alliance Workshop 2018

NVDIMM

UserSpace

KernelSpace

Application

Load/StoreStandardFile API

pmem-AwareFile System

MMUMappings

PMDKLibraries

Page 23: 14th PERSISTENT MEMORY PROGRAMMING · 14th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018. Intel

PMDK REPLICATION

OpenFabrics Alliance Workshop 201823

NVDIMM

Application

Load/StoreStandardFile API

pmem-AwareFile System

MMUMappings

objpmem

NVDIMM

pmem-AwareFile System

Remote MachineSame APIwith and without

replication

Page 24: 14th PERSISTENT MEMORY PROGRAMMING · 14th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018. Intel

SUMMARY

Persistent Memory technologies are emerging

• Some are available now

• Some are available soon

• Capacity explosion

The ecosystem has been preparing

• Pretty far along for local usage

• Getting interesting for remote usages (Tom’s talk)

24 OpenFabrics Alliance Workshop 2018

Page 25: 14th PERSISTENT MEMORY PROGRAMMING · 14th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018. Intel

ANNOUNCING - SNIA & OPENFABRICS ALLIANCE

OpenFabrics Alliance Workshop 201825

SNIA NVMP TWG OpenFabrics Alliance

Develop RPM use cases

Create user-driven API Reqmts

Open SourceFrameworks & APIs

Create and Document Programming models

Vendors develop n/w solutions

Page 26: 14th PERSISTENT MEMORY PROGRAMMING · 14th ANNUAL WORKSHOP 2018 PERSISTENT MEMORY PROGRAMMING Andy Rudoff April 10, 2018. Intel

14th ANNUAL WORKSHOP 2018

THANK YOUAndy Rudoff

Intel