20
Photos placed in horizontal position with even amount of white space between photos and header Sandia National Laboratories is a multi-program laboratory managed and operated by Sandia Corporation, a wholly owned subsidiary of Lockheed Martin Corporation, for the U.S. Department of Energy’s National Nuclear Security Administration under contract DE-AC04-94AL85000. SAND NO. 2011-XXXXP Leveraging In-Memory Key/Value Stores in HPC Kelpie Craig Ulmer

Leveraging In-Memory Key/Value Stores in HPC Kelpie access pattern makes prefetch easy ... Flight Recorder Design: ... Go/MR: GoLang implementation of MapReduce Utilizes Kelpie for

  • Upload
    ngonhan

  • View
    215

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Leveraging In-Memory Key/Value Stores in HPC Kelpie access pattern makes prefetch easy ... Flight Recorder Design: ... Go/MR: GoLang implementation of MapReduce Utilizes Kelpie for

Photos placed in horizontal position

with even amount of white space

between photos and header

Sandia National Laboratories is a multi-program laboratory managed and operated by Sandia Corporation, a wholly owned subsidiary of Lockheed Martin

Corporation, for the U.S. Department of Energy’s National Nuclear Security Administration under contract DE-AC04-94AL85000. SAND NO. 2011-XXXXP

Leveraging In-Memory Key/Value Stores in HPC Kelpie

Craig Ulmer

Page 2: Leveraging In-Memory Key/Value Stores in HPC Kelpie access pattern makes prefetch easy ... Flight Recorder Design: ... Go/MR: GoLang implementation of MapReduce Utilizes Kelpie for

Overview: Leveraging KV Stores

NoSQL: Dramatic impact on Out-of-Core processing Frameworks handle scheduling, placement, and reliability

Enables novice users to take advantage of parallel processing

Good for information apps, but not Scientific Computing NoSQL primary concern is disks, assumes cluster hardware

Can we leverage some of the concepts of NoSQL in HPC?

Distributed In-Memory Key/Value stores are extremely useful Kelpie: Experimental 2D KV for HPC built on Nessie (portable RDMA)

Examples: Caching, Glue, Communication, New Frameworks

2

Page 3: Leveraging In-Memory Key/Value Stores in HPC Kelpie access pattern makes prefetch easy ... Flight Recorder Design: ... Go/MR: GoLang implementation of MapReduce Utilizes Kelpie for

LESSONS FROM NOSQL

3

Page 4: Leveraging In-Memory Key/Value Stores in HPC Kelpie access pattern makes prefetch easy ... Flight Recorder Design: ... Go/MR: GoLang implementation of MapReduce Utilizes Kelpie for

How did we get here?

Sandia started investigating NoSQL frameworks in 2008 Can we leverage for post-processing on clusters?

Make it easier to build one-off analysis

Ported analysis kernels to different frameworks/stores Hadoop, Pig, Accumulo, Cassandra, MongoDB, SectorSphere…

LexisNexis DAS, InfoSphere, XtremeData, Netezza

Hadoop MapReduce most practical

4

0

200

400

600

800

1,000

1,200

1,400

1,600

1M 2M 5M 10M 20M 50M 100M

Mesh Elements

Tim

e (

S)

Netezza Mustang

Netezza TwinFin6

XtremeData Prototype

XtremeData dbX 1008

LexisNexis DAS-20

LexisNexis DAS-60

Hadoop Decline 32

Hadoop Amazon 32

Hadoop Amazon 128

Tim

e (

s)

Mesh Elements

Page 5: Leveraging In-Memory Key/Value Stores in HPC Kelpie access pattern makes prefetch easy ... Flight Recorder Design: ... Go/MR: GoLang implementation of MapReduce Utilizes Kelpie for

MapReduce Recap

5

Page 6: Leveraging In-Memory Key/Value Stores in HPC Kelpie access pattern makes prefetch easy ... Flight Recorder Design: ... Go/MR: GoLang implementation of MapReduce Utilizes Kelpie for

Good Points of MapReduce

6

Objectify Data Objectify Calculations

Load Balancing Framework Handles

Scheduling, Reliability

Page 7: Leveraging In-Memory Key/Value Stores in HPC Kelpie access pattern makes prefetch easy ... Flight Recorder Design: ... Go/MR: GoLang implementation of MapReduce Utilizes Kelpie for

Bad Points of MapReduce

7

Data

Suitcase

Disk-Based

Communication

Pull-Based I/O

Inflexible Data Flow

Page 8: Leveraging In-Memory Key/Value Stores in HPC Kelpie access pattern makes prefetch easy ... Flight Recorder Design: ... Go/MR: GoLang implementation of MapReduce Utilizes Kelpie for

Other Lessons from NoSQL

Frameworks trick users into providing useful info Atomic operations, data boundaries

Indirection is worthwhile Frameworks can do more, Users micromanage less

Basic functionality is often good enough HDFS: Append-only writes

2D Stores > 1D Stores Accumulo: Use a row to build an index generated by multiple writers

Be open to alternatives SQL vs NoSQL

8

Page 9: Leveraging In-Memory Key/Value Stores in HPC Kelpie access pattern makes prefetch easy ... Flight Recorder Design: ... Go/MR: GoLang implementation of MapReduce Utilizes Kelpie for

Meanwhile, Back in HPC

What are the main concerns in HPC today? Reliability concerns

Architecture changes: Fat nodes

Application pipelines

New programming models

Are any of the NoSQL ideas relevant to HPC?

Building blocks: Key/Value Stores

9

Page 10: Leveraging In-Memory Key/Value Stores in HPC Kelpie access pattern makes prefetch easy ... Flight Recorder Design: ... Go/MR: GoLang implementation of MapReduce Utilizes Kelpie for

KEY/VALUE STORES

10

Page 11: Leveraging In-Memory Key/Value Stores in HPC Kelpie access pattern makes prefetch easy ... Flight Recorder Design: ... Go/MR: GoLang implementation of MapReduce Utilizes Kelpie for

In-Memory, Key/Value Stores

KV Stores: an old idea with renewed interest Distribute a number of servers to hold values

Use a key label to reference data

Put/Get interface

Many existing packages Cluster: Memcached, Redis, Kyoto Cabinet, RAMCloud,…

HPC: IBM PIMD

11

K/V

Server = Hash(key)

Clients Servers

Page 12: Leveraging In-Memory Key/Value Stores in HPC Kelpie access pattern makes prefetch easy ... Flight Recorder Design: ... Go/MR: GoLang implementation of MapReduce Utilizes Kelpie for

Peer Only Remote + Peer Mode Remote Mode

Kelpie: Distributed KV Store for HPC

SNL Developing experimental KV Store for HPC

Built on top of Nessie Portable RPC+RDMA library (IB, Gemini, BG/P, Portals, MPI)

Typical KV with tweaks 1D or 2D Keys

Optional Backing store (local/remote disks)

Different modes with Location Hints

12

K/V K/V

Page 13: Leveraging In-Memory Key/Value Stores in HPC Kelpie access pattern makes prefetch easy ... Flight Recorder Design: ... Go/MR: GoLang implementation of MapReduce Utilizes Kelpie for

KV USE STORIES

13

Page 14: Leveraging In-Memory Key/Value Stores in HPC Kelpie access pattern makes prefetch easy ... Flight Recorder Design: ... Go/MR: GoLang implementation of MapReduce Utilizes Kelpie for

[1/4] Application Caching and I/O

Leverage K/V store simply as a way to store intermediate data Users put/get blocks of data via references

Scale performance tradeoffs by adjusting K/V store size

Also useful for I/O swells

I/O Compute Job

K/V

14

Page 15: Leveraging In-Memory Key/Value Stores in HPC Kelpie access pattern makes prefetch easy ... Flight Recorder Design: ... Go/MR: GoLang implementation of MapReduce Utilizes Kelpie for

Forward/Reverse Cache

BSP Code with forward/reverse dataflow During reverse stages, reuse intermediates from forward stages

Requires in-memory storage to be practical

Regular access pattern makes prefetch easy

Proxy application for tradeoff studies

15

Wall Clock Time

Co

re

Forward Reverse

Page 16: Leveraging In-Memory Key/Value Stores in HPC Kelpie access pattern makes prefetch easy ... Flight Recorder Design: ... Go/MR: GoLang implementation of MapReduce Utilizes Kelpie for

[2/4] Muli-Simulation Glue

Many users need to join one monolithic job to another Painful to add coupling – some use I/O as the medium

KV Stores provide a natural exchange point

Compute Job

Analysis 1

Analysis 2 I/O

K/V K/V

16

Page 17: Leveraging In-Memory Key/Value Stores in HPC Kelpie access pattern makes prefetch easy ... Flight Recorder Design: ... Go/MR: GoLang implementation of MapReduce Utilizes Kelpie for

Glue: Hardware Fuzzing

SNL: Digital hardware fuzzing for reliability testing Flight Recorder Design: Operates in RF-hostile environment

Will data corruption lock up the hardware?

Parameter study: Many long-running VHDL/Verilog sims Previously: Discovered two design problems over multi-month sim

Current: Capture waveforms, characterize, look for abnormalities

17

Kelpie

Page 18: Leveraging In-Memory Key/Value Stores in HPC Kelpie access pattern makes prefetch easy ... Flight Recorder Design: ... Go/MR: GoLang implementation of MapReduce Utilizes Kelpie for

[3/4] Communication without MPI

Use KV Store for Inter-Process Communication Work at a higher level of abstraction

May be of use in workloads with dynamic data flows

Warning: MPI does IPC very, very well

Early experiences porting Mantevo applications Positive: Feels more like symbolic language

Negative: Performance loss due to indirection

18

K/V

Direct Indirect

K/V

Indirect with Peer Help

Page 19: Leveraging In-Memory Key/Value Stores in HPC Kelpie access pattern makes prefetch easy ... Flight Recorder Design: ... Go/MR: GoLang implementation of MapReduce Utilizes Kelpie for

[4/4] Frameworks

Many are working on computational frameworks for HPC ASCR FOX: Fault-Oblivious eXecution

SNL: DAG Task Scheduling for Reliability

KV Stores provide a useful starting point

Example: Go/MR: GoLang implementation of MapReduce Utilizes Kelpie for storing objects

2D Keys useful for collecting related items

19

K/V

Page 20: Leveraging In-Memory Key/Value Stores in HPC Kelpie access pattern makes prefetch easy ... Flight Recorder Design: ... Go/MR: GoLang implementation of MapReduce Utilizes Kelpie for

Summary

NoSQL efforts tested out a variety of interesting concepts

Key/Value Stores are a valuable service for HPC

Kelpie Currently tested at small scale on IB, BG/P, and Gemini

Expanding our user examples and making more robust

Planned external release in June

20