Execu&on Templates: Caching Control Plane Decisions for Strong Scaling of Data Analy&cs
Omid Mashayekhi Hang Qu Chinmayee Shah Philip Levis
July 13, 2017
Execu&on Templates: Caching Control Plane Decisions for Strong - - PowerPoint PPT Presentation
Execu&on Templates: Caching Control Plane Decisions for Strong Scaling of Data Analy&cs Omid Mashayekhi Hang Qu Chinmayee Shah Philip Levis July 13, 2017 2 2 Cloud Frameworks Machine Graph SQL Streaming Learning Cloud
Omid Mashayekhi Hang Qu Chinmayee Shah Philip Levis
July 13, 2017
2 2
3
SQL Streaming
Machine Learning
Graph
Cloud Framework
Cloud frameworks abstract away the complexi&es of the cloud infrastructure from the applica&on developers:
1. Automa&c distribu&on 2. Elas&c scalability 3. Mul&tenant applica&ons 4. Load balancing 5. Fault tolerance
4
SQL
Job Control Plane
Task
MapReduce Hadoop
2004
5
MapReduce Hadoop
Spark Naiad
2004 2012
6
MapReduce Hadoop
Spark Naiad Spark 2.0 Common IL C++
2004 2012 2016
7
8
9
10
11
12
13
Control Plane Example
Task Throughput Scheduling Cost
Design Framework
(task per sec) (per task)
Centralized MapReduce ≈ 1, 000 ≈ 100µs Hadoop Spark Distributed Naiad ≈ 100, 000 ≈ 100, 000µs TensorFlow Centralized w/
but has limited task throughput and boalenecks at scale.
all nodes and installing new data flow with high latency.
14
Execu>on Templates is an abstrac&on for the control plane of cloud compu&ng frameworks, that enables orders of magnitude higher task throughput, while keeping the fine-grained, flexible scheduling with low cost.
15
16
17
Controller
Driver Program
Data Map Reduce
Data flow
Worker Worker
Data Objects Data Objects
Task Graph
18
Controller
Driver Program
Data Map Reduce
Data flow
Worker Worker
Data Objects Data Objects
C Task Graph
19
Controller
Driver Program
Data Map Reduce
Data flow
Worker Worker
Data Objects Data Objects
C
Task id Data list
Function Parameter
Task Graph
20
Controller
Driver Program
Data Map Reduce
Data flow
Worker Worker
Data Objects Data Objects
Data Exchange C
Task id Data list
Function Parameter
Task Graph
21
Controller Worker Worker
Data Objects Data Objects
Task Graph
22
Controller Worker Worker
Data Objects Data Objects
C
Task id Data list
Function Parameter
Task Graph
23
Controller Worker Worker
Data Objects Data Objects
Task Graph Data Exchange C
Task id Data list
Function Parameter
24
Controller Worker Worker
Data Objects Data Objects
C
Task id Data list
Function Parameter
Task Graph
25
Controller Worker Worker
Data Objects Data Objects
Task Graph Data Exchange C
Task id Data list
Function Parameter
26
Task id Data list
Function Parameter Task id Data list
Function Parameter Task id Data list
Function Parameter
27
Task id Data list
Function Parameter Task id Data list
Function Parameter Task id Data list
Function Parameter Load New Task ids Parameters T1 P1 T2 P2 T3 P3
28
individually from scratch. It helps increase the task throughput.
enables fine-grained, dynamic scheduling.
the template. It enables dynamic control flow.
29
Controller Worker Worker
C Task Graph
Data Objects Data Objects
30
Controller Worker Worker
Task Graph
Data Objects Data Objects
C C
Template Template
31
Controller Worker Worker
Task Graph
Data Objects Data Objects
C
Template Template
32
Controller Worker Worker
Task Graph
Data Objects Data Objects
C
Template Template
Instantiate<params> Instantiate<params>
33
Controller Worker Worker
Task Graph
Data Objects Data Objects
C C
Template Template
34
– For example rescheduling a task from one worker to another.
templates allow edit, to change their structure.
template content, in-place.
dependencies properly, needed by the edits.
35
36
Controller Worker
Task Graph
Data Objects
C
Template
Worker
Data Objects Template
Reschedule
37
Controller Worker
Task Graph
Data Objects
C
Template
Worker
Data Objects Template
Edit<remove > Edit<add >
38
Controller Worker
Task Graph
Data Objects
C
Template
Worker
Data Objects Template
39
Controller Worker
Task Graph
Data Objects
C
Template
Worker
Data Objects Template
Instantiate<params> Instantiate<params>
40
– A code block with single entry and no branches except at the end.
– For example the set of data objects in memory, accessed by the tasks.
circumstances.
the precondi&ons.
41
42
Controller Worker Worker
Task Graph
Data Objects Data Objects
C
Template Template Precondi&ons Precondi&ons
43
Controller Worker Worker
Task Graph
Data Objects Data Objects
C
Template Template Precondi&ons Precondi&ons
Patch< load >
44
Controller Worker Worker
Task Graph
Data Objects Data Objects
C
Template Template Precondi&ons Precondi&ons
45
Controller Worker Worker
Task Graph
Data Objects Data Objects
C
Template Template
Instantiate<params> Instantiate<params>
Precondi&ons Precondi&ons
46
Controller Worker Worker
Task Graph
Data Objects Data Objects
C C
Template Template Precondi&ons Precondi&ons
47
individually from scratch. It helps increase the task throughput.
enables fine-grained, dynamic scheduling.
the template. It enables dynamic control flow.
48
– Supervised/unsupervised learning algorithms. – Graph processing. – Physical simula&on: water, smoke, etc. (PhysBAM library)
49
50
performance of Naiad with a distributed control plane.
51
Rescheduling 5% of the tasks
52
2 4 6 6SarN-oSW 10 20 30 40 50 60 70 80 90 100 1umber of WorNers 50 100 150 1imbus 7asN 7hroughSuW (7housands Ser second)
– Complex, and memory intensive from PhysBAM library.
– High tasks throughput requirements (400,000 tasks per second). – Nested loops and data dependent branches. – Require patching in very subtle cases. – Tradi&onally in the HPC domain.
53
54
55
Control Plane Example
Task Throughput Scheduling Cost
Design Framework
(task per sec) (per task)
Centralized MapReduce ≈ 1, 000 ≈ 100µs Hadoop Spark Distributed Naiad ≈ 100, 000 ≈ 100, 000µs TensorFlow Centralized w/ Nimbus ≈ 100, 000 ≈ 100µs Execution Templates
56