Professional Documents
Culture Documents
Flow B Flow D
Ask an oracle.
Link 0 Link
Link 1 Capacity
Link 2 LinkFlow
3 Link 4Rate
Flow A √ 0√ 100
Flow A 35
Flow B 1√ √60 Flow B 25
Flow C 2 √30 √ Flow C 5
Flow D 3 10 √ Flow D
√ 5
4 100
10 20 0
01 3 5 10 20 30 40
Time (# of RTTs, 1 RTT=24us)
Ideal (dotted)
30 40
1
10 20 0
01 3 5 10 20 30 40
Time (# of RTTs, 1 RTT=24us)
Ideal (dotted)
30 40
1
10 20 0
01 3 5 10 20 30 40
Time (# of RTTs, 1 RTT=24us)
Ideal (dotted)
30 40
1
10 20 0
01 3 5 10 20 30 40
Time (# of RTTs, 1 RTT=24us)
Ideal (dotted)
30 40
1
10 20 0
01 3 5 10 20 30 40
Time (# of RTTs, 1 RTT=24us)
Ideal (dotted)
30 40
1
10 20 0
01 3 5 10 20 30 40
Time (# of RTTs, 1 RTT=24us)
Ideal (dotted)
30 40
1
10 20 0
01 3 5 10 20 30 40
Time (# of RTTs, 1 RTT=24us)
Adjust
Flow Rate
Measure
Congestion
Transmissi
10 20
0
01 3 5 10 20 30 40
Time (# of RTTs, 1 RTT=24us)
Link 1 Link 2
30 G 10 G
Flow A
Flow B
Dependency Graph
Flow A Link 1
30 G
Flow B
Link 2
10 G
Dependency Graph
Flow A Link 1
30 G
Flow B 10
10 Link 2
10 G
Proactive Explicit Rate Control (PERC)
Overview
Round 1 (Flows Links)
• Flows and links alternately
exchange messages.
• A flow sends a “demand” Flow A 1 Link 1
∞ 1
– ∞ when no other fair share 5 30 G
– min. fair share of other links 5
Flow B ∞
• A link sends a “fair share” ∞
1 Link 2
– C/N when demands are ∞ 0 10 G
– otherwise use water-filling
Proactive Explicit Rate Control (PERC)
Overview
Round 2 (Flows Links)
• Flows and links alternately
exchange messages.
• A flow sends a “demand”
– ∞ when no other fair share Flow A Link 1
∞
– min. fair share of other links 30 G
• A link sends a “fair share” 1
Flow B 1
– C/N when demands are ∞ 0
5 Link 2
– otherwise use water-filling
10 G
• Messages are approximate,
jump to right values quickly
with more rounds
Proactive Explicit Rate Control (PERC)
Overview
Round 2 (Links Flows)
• Flows and links alternately
exchange messages.
• A flow sends a “demand”
– ∞ when no other fair share Flow A 2 Link 1
2
– min. fair share of other links 0 30 G
0
• A link sends a “fair share” Flow B
– C/N when demands are ∞ 1 Link 2
– otherwise use water-filling 0 10 G
• Messages are approximate,
jump to right values quickly
with more rounds
Message Passing Algorithms
Decoding error correcting codes Flow counts using shared counters
(LDPC- Gallager, 1963) (Counter Braids- Lu et al, 2008)
d| ∞ | ∞
f| ? | ?
Link 1 Link 2
30 G 10 G
Flow A
Flow B
PERC Implementation
Control Packet For Flow B
d| ∞ | ∞
f|15
f| ? | ?
Link 1 Link 2
30 G 10 G
Flow A
Flow B
PERC Implementation
Control Packet For Flow B
d| ∞ | ∞
f|15 |10
| ?
Link 1 Link 2
30 G 10 G
Flow A
Flow B
PERC Implementation
Control Packet For Flow B
d| ∞ |
d|10 ∞
|15
f|15
f|? |10
| ?
Link 1 Link 2
30 G 10 G
Flow A
send at 15G!
Flow B
PERC converges fast
60 <5 RCP took PERC (solid)
RTTs
50
30 RTTs to
Transmission Rate (Gbps)
Ideal (dotted)
Converge
30 40
1
10 20 0
01 3 5 10 20 30 40
Time (# of RTTs, 1 RTT=24us)
Link 0 Link 1 Link 2 Link 3 Link 4
100 G 60 G 30 G 10 G 100 G
Flow A = 35G Flow C = 5G
Flow B = 25G Flow D = 5G
PERC Converges Fast
0.99
0.80
4 vs 14 at Median
10 vs 71 at Tail (99th)
0.60
CDF
1%TOR%
0.40
Edge%Links
PERC
RCP
0.20
4%Hosts%
0.00
0 10 20 40 60 80 100
RTTs to converge
Some unanswered questions
• How to calculate fair shares in PERC switches?
• How to bound convergences times in theory?
• What about other policies?
Takeways
• Reactive schemes are slow for short flows
(majority) at 100G
• Proactive schemes like PERC are fundamentally
different and can converge quickly because they
calculate explicit rates based on out of band
information about set of active flows.
• Message passing promising proactive approach-
could be practical, need further analysis to
understand good convergence times in practice.
Thanks!
Shorter FCTs For Flows
That Last A Few RTTs (“Medium”)
100G, 12us
RCP
9
DCTCP
PERC
(norm. by IDEAL)
(norm. by IDEAL)
7
Mean FCT
Tail FCT
4.5
2
2
0
0
Small Flows Medium Flows Large Flows
XCP
RCP
ATM/ Charny etc.
0.99
0.80
0.60
CDF
0.40
PERC
CHARNY
0.20
RCP
0.00
0 10 20 40 60 80 100
RTTs to converge
Discussion
• Fundamentally any limit on how fast we can
get max-min rates? Explicit or implicit
whatever