Nexus A common substrate for cluster computing Benjamin Hindman, - - PowerPoint PPT Presentation

nexus
SMART_READER_LITE
LIVE PREVIEW

Nexus A common substrate for cluster computing Benjamin Hindman, - - PowerPoint PPT Presentation

Nexus A common substrate for cluster computing Benjamin Hindman, Andy Konwinski, Matei Zaharia, Ion Stoica, Scott Shenker Problem Rapid innovation in cluster computing frameworks No single framework optimal for all applications Running


slide-1
SLIDE 1

Nexus

A common substrate for cluster computing

Benjamin Hindman, Andy Konwinski, Matei Zaharia, Ion Stoica, Scott Shenker

slide-2
SLIDE 2

Problem

Rapid innovation in cluster computing frameworks No single framework optimal for all applications Running multiple frameworks in a single cluster

slide-3
SLIDE 3

Solution

Nexus is a resource manager over which frameworks like Hadoop can be written

» Nexus multiplexes resources between frameworks » Frameworks control job execution

slide-4
SLIDE 4

Implications

Users can pick best framework for each app Specialized frameworks, not one-size-fits-all

slide-5
SLIDE 5

I only want to use Hadoop

Nexus is a better way to manage Hadoop Hadoop master is complex, hard to scale and make robust Multiple Hadoop instances/versions at same time

slide-6
SLIDE 6

Outline

Beyond MapReduce and Dryad Nexus Architecture Implementation Philosophy

slide-7
SLIDE 7

Beyond MapReduce & Dryad

slide-8
SLIDE 8
  • 1. Iterative Jobs

Many machine learning jobs are of the form:

p = random(); while (p not converged) { p = f(p, dataset); }

slide-9
SLIDE 9
  • 2. Nested Parallelism

Recursion (quicksort), maps within maps Difficult in MapReduce/Dryad, possible with NESL model

slide-10
SLIDE 10
  • 3. Irregular Parallelism

Sometimes, we don’t know computation graph

» Branch-and-bound search » Exploring moves in chess » Ray tracing

Hard to hack into MapReduce/Dryad, easy with work-stealing programming model (Cilk)

slide-11
SLIDE 11
  • 4. Existing Parallel

Apps

Parallel build (distcc) Parallel unit test (Selenium Grid) Web servers (!)

slide-12
SLIDE 12

Nexus Architecture

slide-13
SLIDE 13

Hadoop master App Hadoop slave task Hadoop slave task Hadoop slave task

Hadoop

slide-14
SLIDE 14

Nexus master Hadoop scheduler Nexus slave App Hadoop executor task Nexus slave Hadoop executor task Nexus slave Hadoop executor task

Nexus

slide-15
SLIDE 15

Nexus master Hadoop v20 scheduler Nexus slave App 2 Hadoop v20 executor task Nexus slave MPI executor task

Nexus slave

Hadoop v15

executor

task

MPI scheduler App 3

MPI executor task

Nexus

Hadoop v15 scheduler App 1

slide-16
SLIDE 16

Scheduler API

Framework scheduler

Nexus master

status(task, status) accept_offer(task) reject_offer() slot_offer(slot)

slide-17
SLIDE 17

Executor API

Nexus slave

Framework executor status(task, status) start_task(task) kill_task(task)

slide-18
SLIDE 18

Analysis

Frequency of slot offers t = average task length (e.g. 60s) r = # replicas (e.g. 3) s = slots per node (e.g. 8) Avg slot offer wait time = t / rs (e.g. 2.5s)

slide-19
SLIDE 19

Analysis

Right of first refusal Provides “code locality” Grab and hold Avg co-located slot offer wait time = t / s

slide-20
SLIDE 20

Implementation

slide-21
SLIDE 21

Implementation Status

Simple 2000 lines of C++ Scalable 500 slaves on EC2 Frameworks Preliminary port of Hadoop, and specialized LR framework

slide-22
SLIDE 22

LR Job Comparison

100 200 300 400 500 600 700 800 900 1000 1100 1200 1 5 10 20 Time (s) Iterations Hadoop Hadoop on Nexus Nexus

slide-23
SLIDE 23

Philosophy

slide-24
SLIDE 24

Microkernel

» Make reliable component as small as possible

Exokernel

» Give maximal control to frameworks

IP model

» Narrow waist over which diverse frameworks can run

slide-25
SLIDE 25

Questions

??

?