Exploiting Inter-Flow Relationship for Coflow Placement in Data Centers Xin Sunny Huang , T. S. Eugene Ng Rice University 1
This Work • Optimizing Coflow performance has many benefits such as avoiding application straggles [1,2] and improving resource utilization [3,4] . • Coflow placement is an unexplored, important factor to determine Coflow performance. • 2D-Placement leverages inter-flow relationship to find good placement for Coflows. [1] Orchestra (SIGCOMM ’11). [2] Varys (SIGCOMM ’14). [3] CARBYNE (OSDI ‘16). [4] YARN-ME (memory elasticity, in ATC ’17) 2
Coflow • Coflow [1] : A set of parallel flows. • Produced by distributed applications (e.g. Hadoop & Spark). • Performance is measured by Coflow Completion Time (CCT), i.e. the slowest flow’s completion time. Coflow #1 Coflow #2 Coflow #3 (shuffle) (broadcast) (aggregation) [1] Chowdhury, M. et al. Coflow: An application layer abstraction for cluster networking. (HotNets’12) 3
Coflow Scheduling • Prior works demonstrate benefits of Coflow scheduling. • Limitation : Assume predetermined placement for Coflows, i.e. predetermined sender/receiver locations. Existing 1 1 2 2 3 3 . . . . . . N-1 N-1 N N Varys (SIGCOMM ’14), Aalo (SIGCOMM ’15), CODA (SIGCOMM ’16) and Sunflow (CoNEXT ’16), etc. 4
Coflow Scheduling • Prior works demonstrate benefits of Coflow scheduling. • Limitation : Assume predetermined placement for Coflows, i.e. predetermined sender/receiver locations. Existing 1 1 1 1 2 2 2 2 3 3 3 3 . . . . . . . . Newly arriving . . . . N-1 N-1 N-1 N-1 N N N N Varys (SIGCOMM ’14), Aalo (SIGCOMM ’15), CODA (SIGCOMM ’16) and Sunflow (CoNEXT ’16), etc. 5
Coflow Placement • Coflow placement can be flexible (e.g. cluster scheduler to choose machines for tasks in a stage). • Placement and scheduling decide Coflow performance. 1 1 2 2 3 3 . . . . . . N-1 N-1 N N 6
Coflow Placement • Coflow placement can be flexible (e.g. cluster scheduler to choose machines for tasks in a stage). • Placement and scheduling decide Coflow performance. 1 1 1 1 2 2 2 2 3 3 3 3 . . . . . . . . . . . . N-1 N-1 N-1 N-1 N N N N 7
Coflow Placement • Coflow placement can be flexible (e.g. cluster scheduler to choose machines for tasks in a stage). • Placement and scheduling decide Coflow performance. 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 3 3 . . . . . . . . . . . . . . . . . . N-1 N-1 N-1 N-1 N-1 N-1 N N N N N N 8
Coflow Placement • Coflow placement can be flexible (e.g. cluster scheduler to choose machines for tasks in a stage). • Placement and scheduling decide Coflow performance. 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 3 3 . . . . . . . . . . . . . . . . . . N-1 N-1 N-1 N-1 N-1 N-1 N N N N N N 9
Coflow Placement • Coflow placement can be flexible (e.g. cluster scheduler to choose machines for tasks in a stage). • Placement and scheduling decide Coflow performance. Finding input/output ports to 1 1 1 1 1 1 place sender/receiver tasks for 2 2 2 2 2 2 a newly arrival Coflow 3 3 3 3 3 3 . . . . . . . . . . . . . . . . . . N-1 N-1 N-1 N-1 N-1 N-1 N N N N N N 10
Coflow Placement This work: good placement under • Coflow placement can be flexible (e.g. cluster scheduler optimal scheduling to choose machines for tasks in a stage). • Placement and scheduling decide Coflow performance. Finding input/output ports to 1 1 1 1 1 1 place sender/receiver tasks for 2 2 2 2 2 2 a newly arrival Coflow 3 3 3 3 3 3 . . . . . . . . . . . . . . . . . . N-1 N-1 N-1 N-1 N-1 N-1 N N N N N N 11
Coflow Placement Constrained by Inter-Flow Relationship • Within a Coflow, flows’ placement are dependent. 12
Coflow Placement Constrained by Inter-Flow Relationship • Within a Coflow, flows’ placement are dependent. 13
Coflow Placement Constrained by Inter-Flow Relationship • Within a Coflow, flows’ placement are dependent. 14
Coflow Placement Constrained by Inter-Flow Relationship • Within a Coflow, flows’ placement are dependent. 15
Coflow Placement Constrained by Inter-Flow Relationship • Within a Coflow, flows’ placement are dependent. 16
Challenge #1: Intra-Coflow Bottleneck Delay 1 1 s 1 30 2 2 2 2 r 1 30 How to place? 2 s 2 2 3 3 30 2 r 2 4 4 s 3 50 Network with C 1 C 2 in.1 s 1 30 2 2 s 2 30 3 2 2 s 3 30 50 4 2 2 r 1 r 2 out.1 2 3 4 17
Challenge #1: Intra-Coflow Bottleneck Delay 1 1 s 1 30 2 2 2 2 r 1 30 How to place? 2 s 2 2 3 3 30 2 r 2 4 4 s 3 50 Only consider C 2 : Network with C 1 C 2 C 1 is prioritized under in.1 optimal scheduling, s 1 30 2 2 and thus C 1 is not s 2 30 3 sensitive to C 2 . 2 2 s 3 30 50 4 2 2 r 1 r 2 out.1 2 3 4 18
Challenge #1: Intra-Coflow Bottleneck Delay Network with C 1 Optimal C 2 in.1 in.1 50 30 2 s 1 2 2 30 30 2 How to place? 3 s 2 3 30 2 2 30 2 2 4 s 3 4 30 50 2 2 2 2 r 1 r 2 out.1 2 3 4 out.1 2 3 4 out.1, out.2, out.3: Place r 1 at less Bottleneck at r 1 less bandwidth busy port out.4 19
Challenge #2: Inter-Coflow Bottleneck Contentions Optimal C 3 in.1 in.1 50 30 50 30 s 1 20 2 2 2 30 2 30 How to place? s 2 20 3 3 2 2 30 2 2 30 s 3 20 4 4 2 2 2 2 r 1 out.1 2 3 4 out.1 2 3 4 In-cast Place r 1 at less in.1, out.3, out.4: bottleneck at r 1 busy port out.1 heavily delay C 2 (priority: C 1 >C 3 >C 2 ) 20
Summary: Keys to Coflow Placement Intra-Coflow Inter-Coflow Avoid delaying critical Avoid contentions among endpoints (bottleneck) critical endpoints. 21
2D-Placement Intra-Coflow Inter-Coflow Step 1: Calculate endpoint demand Identify critical endpoints that require better placement. 22
2D-Placement Intra-Coflow Inter-Coflow Step 2: Calculate load on ports Step 1: Calculate endpoint demand Identify critical Find ports with less endpoints that require contentions. better placement. 23
2D-Placement Intra-Coflow Inter-Coflow Step 2: Calculate load on ports Step 1: Calculate endpoint demand Identify critical Find ports with less endpoints that require contentions. better placement. Avoid contentions on critical endpoints. Step 3: Place heavily loaded endpoints on less loaded ports! 24
2D-Placement Intra-Coflow Inter-Coflow Network with C 1 C 2 in.1 30 s 1 2 2 s 2 30 3 2 2 30 50 s 3 4 2 2 r 1 r 2 out.1 2 3 4 90 50 25
2D-Placement Intra-Coflow Inter-Coflow Step 1: Calculate endpoint demand Network with C 1 C 2 in.1 30 s 1 2 2 s 2 30 3 2 2 30 50 s 3 4 2 2 r 1 r 2 out.1 2 3 4 90 50 26
2D-Placement Intra-Coflow Inter-Coflow Step 2: Calculate load on ports Step 1: Calculate endpoint demand Network with C 1 C 2 0 in.1 30 30 s 1 2 2 2 30 s 2 30 4 3 2 2 80 30 50 s 3 4 4 2 2 r 1 r 2 out.1 2 3 4 90 50 4 4 2 0 27
2D-Placement Intra-Coflow Inter-Coflow Step 2: Calculate load on ports Step 1: Calculate endpoint demand Network with C 1 C 2 80 0 in.1 30 30 s 1 2 2 2 30 s 2 30 4 3 2 2 80 30 50 s 3 4 4 2 2 r 1 r 2 out.1 2 3 4 90 50 4 4 2 0 Step 3: Place heavily loaded endpoints on less loaded ports! 28
2D-Placement Intra-Coflow Inter-Coflow Step 2: Calculate load on ports Step 1: Calculate endpoint demand Network with C 1 C 2 80 0 in.1 30 30 s 1 32 2 2 2 30 s 2 30 4 3 2 2 80 30 50 s 3 4 4 2 2 r 1 r 2 out.1 2 3 4 90 50 4 4 2 0 Step 3: Place heavily loaded endpoints on less loaded ports! 29
2D-Placement Intra-Coflow Inter-Coflow Step 2: Calculate load on ports Step 1: Calculate endpoint demand Network with C 1 C 2 80 0 in.1 30 30 s 1 32 2 2 2 30 s 2 30 4 34 3 2 2 80 30 50 s 3 4 4 2 2 r 1 r 2 out.1 2 3 4 90 50 4 4 2 0 Step 3: Place heavily loaded endpoints on less loaded ports! 30
2D-Placement Intra-Coflow Inter-Coflow Step 2: Calculate load on ports Step 1: Calculate endpoint demand Network with C 1 C 2 80 0 in.1 30 30 s 1 32 2 2 2 30 s 2 30 4 34 3 2 2 80 30 50 s 3 4 4 2 2 r 1 r 2 out.1 2 3 4 90 50 90 4 4 2 0 Step 3: Place heavily loaded endpoints on less loaded ports! 31
2D-Placement Intra-Coflow Inter-Coflow Step 2: Calculate load on ports Step 1: Calculate endpoint demand Network with C 1 C 2 80 0 in.1 30 30 s 1 32 2 2 2 30 s 2 30 4 34 3 2 2 80 30 50 s 3 4 4 2 2 r 1 r 2 out.1 2 3 4 90 50 52 90 4 4 2 0 Step 3: Place heavily loaded endpoints on less loaded ports! 32
2D-Placement Intra-Coflow Inter-Coflow Step 2: Calculate load on ports Step 1: Calculate endpoint demand Network with C 1 C 2 80 0 in.1 50 30 30 30 s 1 32 2 2 2 2 30 30 s 2 30 4 34 3 2 2 2 2 30 80 30 50 s 3 4 4 2 2 2 2 r 1 r 2 out.1 2 3 4 90 50 52 90 4 4 2 0 Step 3: Place heavily loaded endpoints on less loaded ports! 33
Recommend
More recommend