DC-DRF : Adaptive Multi- Resource Sharing at Public Cloud Scale
ACM Symposium on Cloud Computing 2018 Ian A Kash, Greg O’Shea, Stavros Volos
1
DC-DRF : Adaptive Multi- Resource Sharing at Public Cloud Scale - - PowerPoint PPT Presentation
DC-DRF : Adaptive Multi- Resource Sharing at Public Cloud Scale ACM Symposium on Cloud Computing 2018 Ian A Kash, Greg OShea, Stavros Volos 1 Public Cloud DC hosting enterprise customers O(100K) servers, mostly small tenants 2
ACM Symposium on Cloud Computing 2018 Ian A Kash, Greg O’Shea, Stavros Volos
1
Public Cloud DC hosting enterprise customers O(100K) servers, mostly small tenants
2
T X1 R X1
V T O R1 V T O R2 S S D b VTORa VTORb
TXb R X b
VTOR1 T X1 VTORb R X b S S D b T X b VTORa VTOR2 R X1
3
T X1 R X1
V T O R1 V T O R2 S S D b VTORa VTORb
TXb R X b
VTOR1 T X1 VTORb R X b S S D b T X b VTORa VTOR2 R X1
4
T X1 R X1
V T O R1 V T O R2 S S D b VTORa VTORb
TXb R X b
VTOR1 T X1 VTORb R X b S S D b T X b VTORa VTOR2 R X1
5
T X1 R X1
V T O R1 V T O R2 S S D b VTORa VTORb
TXb R X b
VTOR1 T X1 VTORb R X b S S D b T X b VTORa VTOR2 R X1
6
T X1 R X1
V T O R1 V T O R2 S S D b VTORa VTORb
TXb R X b
VTOR1 T X1 VTORb R X b S S D b T X b VTORa VTOR2 R X1
7
T X1 R X1
V T O R1 V T O R2 S S D b VTORa VTORb
TXb R X b
VTOR1 T X1 VTORb R X b S S D b T X b VTORa VTOR2 R X1
8
T X1 R X1
V T O R1 V T O R2 S S D b VTORa VTORb
TXb R X b
VTOR1 T X1 VTORb R X b S S D b T X b VTORa VTOR2 R X1
9
T X1 R X1
V T O R1 V T O R2 S S D b VTORa VTORb
TXb R X b
VTOR1 T X1 VTORb R X b S S D b T X b VTORa VTOR2 R X1
10
T X1 R X1
V T O R1 V T O R2 S S D b VTORa VTORb
TXb R X b
VTOR1 T X1 VTORb R X b S S D b T X b VTORa VTOR2 R X1
11
T X1 R X1
V T O R1 V T O R2 S S D b VTORa VTORb
TXb R X b
VTOR1 T X1 VTORb R X b S S D b T X b VTORa VTOR2 R X1
12
T X1 R X1
V T O R1 V T O R2 S S D b VTORa VTORb
TXb R X b
VTOR1 T X1 VTORb R X b S S D b T X b VTORa VTOR2 R X1
13
T X1 R X1
V T O R1 V T O R2 S S D b VTORa VTORb
TXb R X b
VTOR1 T X1 VTORb R X b S S D b T X b VTORa VTOR2 R X1
14
T X1 R X1
V T O R1 V T O R2 S S D b VTORa VTORb
TXb R X b
VTOR1 T X1 VTORb R X b S S D b T X b VTORa VTOR2 R X1
15
T X1 R X1
V T O R1 V T O R2 S S D b VTORa VTORb
TXb R X b
VTOR1 T X1 VTORb R X b S S D b T X b VTORa VTOR2 R X1
16
r0 r1 r2 r3 r4 r5 r6 r7 r8 r9
n0 n1 n2 n3 n4 n5 n6 n7 n8 n9
17
r0 r1 r2 r3 r4 r5 r6 r7 r8 r9
n0 n1 n2 n3 n4 n5 n6 n7 n8 n9
18
r0 r1 r2 r3 r4 r5 r6 r7 r8 r9
n0 n1 n2 n3 n4 n5 n6 n7 n8 n9
19
r0 r1 r2 r3 r4 r5 r6 r7 r8 r9
n0 n1 n2 n3 n4 n5 n6 n7 n8 n9
20
r0 r1 r2 r3 r4 r5 r6 r7 r8 r9
.95
.32
.90 .27 .45 .64 .20 .32 .13 .09 1.0 .56
n0 n1 n2 n3 n4 n5 n6 n7 n8 n9
21
22
23
24
25
26
27
28
29
30
31
32
A B C D 0.1 0.2 0.5 0.6
Residual resource = 1.0 Tenants remaining = 4 Current share = 1.0/4 xt = 0.25
xt =0.25
Allocated Residual resource = 0.7 Tenants remaining = 2 Current share = 0.7/2 xt = 0.35
xt=0.35 0.1 0.2 A B .35 .35 C D
Demand Tenant
33
r0 r1 r2 r3 r4 r5 r6 r7 r8 r9
.95
.32
.90 .27 .45 .64 .20 .32 .13 .09 1.0 .56
n0 n1 n2 n3 n4 n5 n6 n7 n8 n9
34
35
r0 r1 r2 r3 r4 r5 r6 r7 r8 r9
.95
.32
.90 .27 .45 .64 .20 .32 .13 .09 1.0 .56
n0 n1 n2 n3 n4 n5 n6 n7 n8 n9
36
r0 r1 r2 r3 r4 r5 r6 r7 r8 r9
.95
.32
.90 .27 .45 .64 .20 .32 .13 .09 1.0 .56
n0 n1 n2 n3 n4 n5 n6 n7 n8 n9
.37 .30 .246 .63 .33 .40 .35 .45 .35 .33
xtr =
37
r0 r1 r2 r3 r4 r5 r6 r7 r8 r9
.95
.32
.90 .27 .45 .64 .20 .32 .13 .09 1.0 .56
n0 n1 n2 n3 n4 n5 n6 n7 n8 n9
.37 .30 .246 .63 .33 .40 .35 .45 .35 .33
xtr =
38
r0 r1 r2 r3 r4 r5 r6 r7 r8 r9
.95
.32
.90 .27 .45 .64 .20 .32 .13 .09 1.0 .56
n0 n1 n2 n3 n4 n5 n6 n7 n8 n9
.37 .30 .246 .63 .33 .40 .35 .45 .35 .33
xtr =
39
r0 r1 r2 r3 r4 r5 r6 r7 r8 r9
.95
.32
.90 .27 .45 .64 .20 .32 .13 .09 1.0 .56
Eliminate r8 if residual capacity hits zero
n0 n1 n2 n3 n4 n5 n6 n7 n8 n9
.37 .30 .246 .63 .33 .40 .35 .45 .35 .33
xtr =
40
r0 r1 r2 r3 r4 r5 r6 r7 r8 r9
.95
.32
.90 .27 .45 .64 .20 .32 .13 .09 1.0 .56
And eliminate tenants demanding r8
n0 n1 n2 n3 n4 n5 n6 n7 n8 n9
.37 .30 .246 .63 .33 .40 .35 .45 .35 .33
xtr =
41
r0 r1 r2 r3 r4 r5 r6 r7 r8 r9
.95
.32
.90 .27 .45 .64 .20 .32 .13 .09 1.0 .56
n0 n1 n2 n3 n4 n5 n6 n7 n8 n9
42
r0 r1 r2 r3 r4 r5 r6 r7 r8 r9
.23
.08
.22 .07 .11 .16 .05 .08 .03 .02 .25 .14
n0 n1 n2 n3 n4 n5 n6 n7 n8 n9
43
r0 r1 r2 r3 r4 r5 r6 r7 r8 r9
.23
.08
.22 .07 .11 .16 .05 .08 .03 .02 .25 .14
n0 n1 n2 n3 n4 n5 n6 n7 n8 n9
44
45
OSDI’14]
46
47
OuterLoop(time t) // runs one per control interval Initialize demand matrix for this interval Set approximation control variable [0, 1] timeOut = InnerLoop() if elapsed time exceeds t then return true Eliminate a resource when 1- full // e.g. =0.01 at 99% Resources and tenants eliminated earlier and in fewer rounds if (timeOut) then increase() else decrease()
48
platform.
49
r0 r1 r2 r3 r4 r5 r6 r7 r8 r9
.95
.32
.90 .27 .45 .64 .20 .32 .13 .09 1.0 .56
n0 n1 n2 n3 n4 n5 n6 n7 n8 n9
50
r0 r1 r2 r3 r4 r5 r6 r7 r8 r9
.95
.32
.90 .27 .45 .64 .20 .32 .13 .09 1.0 .56
n0 n1 n2 n3 n4 n5 n6 n7 n8 n9
51
r0 r1 r2 r3 r4 r5 r6 r7 r8 r9
.95
.32
.90 .27 .45 .64 .20 .32 .13 .09 1.0 .56
n0 n1 n2 n3 n4 n5 n6 n7 n8 n9
52
53
54
__mm512_vindex vindex_512 = _MM512_LOAD_VINDEX(*ptr); __m512r mu_tr = _mm512_i32gather_pr(vindex_512,pScratchR); mu_tr = _mm512_add_pr(mu_tr, A_irt); _mm512_mask_i32scatter_pr(pScratchR, m, vindex_512, mu_tr);
55
__mm512_vindex vindex_512 = _MM512_LOAD_VINDEX(*ptr); __m512r mu_tr = _mm512_i32gather_pr(vindex_512,pScratchR); mu_tr = _mm512_add_pr(mu_tr, A_irt); _mm512_mask_i32scatter_pr(pScratchR, m, vindex_512, mu_tr);
56
__mm512_vindex vindex_512 = _MM512_LOAD_VINDEX(*ptr); __m512r mu_tr = _mm512_i32gather_pr(vindex_512,pScratchR); mu_tr = _mm512_add_pr(mu_tr, A_irt); _mm512_mask_i32scatter_pr(pScratchR, m, vindex_512, mu_tr);
57
__mm512_vindex vindex_512 = _MM512_LOAD_VINDEX(*ptr); __m512r mu_tr = _mm512_i32gather_pr(vindex_512,pScratchR); mu_tr = _mm512_add_pr(mu_tr, A_irt); _mm512_mask_i32scatter_pr(pScratchR, m, vindex_512, mu_tr);
58
__mm512_vindex vindex_512 = _MM512_LOAD_VINDEX(*ptr); __m512r mu_tr = _mm512_i32gather_pr(vindex_512,pScratchR); mu_tr = _mm512_add_pr(mu_tr, A_irt); _mm512_mask_i32scatter_pr(pScratchR, m, vindex_512, mu_tr);
59
60
SOSP’17]
61
62
63
~10% of resources wasted
64
65
66
67
68
69
70
71
72
73
74
75
DC-DRF enables multi-resource allocation to be calculated at Public Cloud scale in bounded time.
76
77
78
Outer loop : find to meet deadline
while true do
// ingest latest observed demands…
Inner loop : approximation of EDRF
while do
79
Outer loop : find to meet deadline
while true do
// ingest latest observed demands…
Inner loop : approximation of EDRF
while do
80
Outer loop : find to meet deadline
while true do
// ingest latest observed demands…
Inner loop : approximation of EDRF
while do
81
Outer loop : find to meet deadline
while true do
// ingest latest observed demands…
Inner loop : approximation of EDRF
while do
82
Outer loop : find to meet deadline
while true do
// ingest latest observed demands…
Inner loop : approximation of EDRF
while do
83
partitioning
84
85
86
87