nexus
play

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


  1. Nexus A common substrate for cluster computing Benjamin Hindman, Andy Konwinski, Matei Zaharia, Ion Stoica, Scott Shenker

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

  3. Solution Nexus is a resource manager over which frameworks like Hadoop can be written » Nexus multiplexes resources between frameworks » Frameworks control job execution

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

  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

  6. Outline Beyond MapReduce and Dryad Nexus Architecture Implementation Philosophy

  7. Beyond MapReduce & Dryad

  8. 1. Iterative Jobs Many machine learning jobs are of the form: p = random(); while (p not converged) { p = f(p, dataset); }

  9. 2. Nested Parallelism Recursion (quicksort), maps within maps Difficult in MapReduce/Dryad, possible with NESL model

  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)

  11. 4. Existing Parallel Apps Parallel build (distcc) Parallel unit test (Selenium Grid) Web servers (!)

  12. Nexus Architecture

  13. Hadoop App Hadoop master Hadoop slave Hadoop Hadoop slave slave task task task

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

  15. Nexus App 1 App 2 App 3 Hadoop v15 Hadoop v20 MPI scheduler scheduler scheduler Nexus master Nexus slave Nexus slave Nexus slave Hadoop v15 MPI Hadoop MPI executor executor v20 executor executor task task task task

  16. Scheduler API slot_offer(slot) accept_offer(task) Nexus Framework reject_offer() scheduler master status(task, status)

  17. Executor API start_task(task) kill_task(task) Nexus Framework slave executor status(task, status)

  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 )

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

  20. Implementation

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

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

  23. Philosophy

  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

  25. Questions ? ? ?

Recommend


More recommend