1
Õ(Congestion + Dilation) Hot-Potato Routing on Leveled Networks
Costas BuschCostas BuschRensselaer Polytechnic Institute
2
•Leveled Networks•Congestion + Dilation•Hot-Potato Routing•Our Algorithm•Future Work
Talk Outline
3
Leveled Networks
Level: 0 1 2 3 L-1 L
4
Examples of Leveled Networks
0 1 2 3
Butterfly
0
1
2
3 4 5 6
Mesh
5
•Synchronous network
•One packet per link direction
Network Model
•One time step per link traversal
•Bi-directional links
6
•Leveled Networks•Congestion + Dilation•Hot-Potato Routing•Our Algorithm•Future Work
Talk Outline
7
Congestion + Dilation
sourcedestination
Each packet has a pre-selected path
8
sourcedestination
The packet follows the pre-selected path
9
sourcedestination
The packet follows the pre-selected path
10
sourcedestination
The packet follows the pre-selected path
11
sourcedestination
The packet follows the pre-selected path
12
sourcedestination
The packet follows the pre-selected path
13
sourcedestination
The packet follows the pre-selected path
14
absorbed
The packet follows the pre-selected path
15
Each packet has its own path
There are packets N
3=N
16
Dilation D: The maximum length of any path
6=D
Routing time: )D(Ω
17
Congestion C: The maximum number of packets traversing any edge
2CRouting time: )C(Ω
18
Lower bound on routing time:
)D+C(Ω
)L+C(Ω
LThere could bepaths with length
Lower bound:
19
Networks with buffers
20
Networks with buffers
Leveled networks:
•Leighton, Maggs, Ranade, Rao: J. Algorithms 1992
)Nlog+L+C(O
Arbitrary networks:
•Leighton, Maggs, Rao: Combinatorica 1994 •Leighton, Maggs, Richa: Combinatorica 1999•Meyer auf der Heide, Sheideler: J. Algorithms 1999•Ostrovsky, Rabani: STOC 1997 •Rabani, Tardos: STOC 1996
)D+C(O
21
What about buffer-less networks?
22
•Leveled Networks•Congestion + Dilation•Hot-Potato Routing•Our Algorithm•Future Work
Talk Outline
23
Hot-Potato Routing
Nodes are buffer-less:
24
Nodes are buffer-less:
25
Nodes are buffer-less:
Time 0
26
Nodes are buffer-less:
Time 1
conflict
27
deflected
deflected
Nodes are buffer-less:
Time 2
28
Nodes are buffer-less:
Time 3
conflict
29
Nodes are buffer-less:
Time 4
deflected
30
Nodes are buffer-less:
Time 5
31
Nodes are buffer-less:
Time 6
32
original pre-selected path
Path lengths may grow arbitrarily large
33
actual path followed
Path lengths may grow arbitrarily large
original pre-selected path
34
Hot-potato routing is interesting:
•Optical networks
•Simple hardware implementations
•Work well in practice:Bartzis et al.: EUROPAR 2000Maxemchuck: INFOCOM 1989
35
Goal: Find a hot-potato algorithm with time close to optimal )L+C(O
No previous work for leveled networks(and arbitrary networks)
Bhatt et al.: ESA 1993
Only work known (but for different problem):
36
Our contribution:
A new hot-potato routing algorithmwith time )L+C(O~
))LN(log•)L+C((O 9
With high probability: LN1
1-
37
•Leveled Networks•Congestion + Dilation•Hot-Potato Routing•Our Algorithm•Future Work
Talk Outline
38
Our Algorithm
•Online algorithm:
•Local algorithm:
routing decisions are takenat real time
routing decisions at a node depend only on the node’s state
40
Partition the packets randomly and uniformly into setsC
1S CS
N packets
2S 3S
CN packets
CN
CN
CN
41
Partition the packets randomly and uniformly into setsC
1S CS2S 3S
)LNlog( )LNlog( )LNlog( )LNlog(
C congestion
congestion
42
1S CS2S 3S
We route each set in a separate frame
43
1F 2F 3F CFWe route each set in a separate frame
)LN(log2
1S CS2S 3S
44
1F 2F 3F CFWe route each set in a separate frame
1S CS2S 3S
45
pre-selected path
kS
Routing a packet
46
kF
Phase 1kS
Routing a packet
47
kF
kS
Routing a packet
Phase 2
48
kF
kS
Routing a packet
Phase 3
49
kF
kS
Routing a packet
Phase 4
50
kF
kS
Routing a packet
Phase 5
51
kF
kS
Routing a packet
Phase 6
52
kF
kS
Routing a packet
Phase 7
53
kF
kS
Routing a packet
Phase 8
54
kF
kS
Routing a packet
Phase 9
55
kF
kS
Routing a packet
Phase 10
56
kF
kS
Routing a packet
Phase 11
57
kS
Routing a packet
Phase 12
58
kS
Routing a packet set
59
kS
kF
Phase 1
Routing a packet set
60
kS
kFRouting a packet set
Phase 2
61
kS
kFRouting a packet set
Phase 3
62
kS
kFRouting a packet set
Phase 4
63
kS
kFRouting a packet set
Phase 5
64
kS
kFRouting a packet set
Phase 6
65
kS
kFRouting a packet set
Phase 7
66
kS
kFRouting a packet set
Phase 8
67
kS
kFRouting a packet set
Phase 9
68
kS
kFRouting a packet set
Phase 10
69
kS
kFRouting a packet set
Phase 11
70
kS
Routing a packet set
Phase 12
71
3S
Routing many packet sets
2S1S
72
3F
Phase 1
3S2S1S
Routing many packet sets
73
3S2S1S
3FRouting many packet sets
Phase 2
74
3S2S1S
3FRouting many packet sets
Phase 3
75
3S2S1S
3F2FRouting many packet sets
Phase 4
76
3S2S1S
3F2FRouting many packet sets
Phase 5
77
3S2S1S
3F2FRouting many packet sets
Phase 6
78
3S2S1S
3F2F1FRouting many packet sets
Phase 7
79
3S2S1S
3F2F1FRouting many packet sets
Phase 8
80
3S2S1S
3F2F1FRouting many packet sets
Phase 9
81
3S2S1S
3F2F1FRouting many packet sets
Phase 10
82
3S2S1S
3F2F1FRouting many packet sets
Phase 11
83
3S2S1S
2F1FRouting many packet sets
Phase 12
84
3S2S1S
2F1FRouting many packet sets
Phase 13
85
3S2S1S
2F1FRouting many packet sets
Phase 14
86
3S2S1S
1FRouting many packet sets
Phase 15
87
3S2S1S
1FRouting many packet sets
Phase 16
88
3S2S1S
1FRouting many packet sets
Phase 17
89
3S2S1S
Routing many packet sets
Phase 18
90
)LNlog(C
)LN(log2
#frames Xframe length + L )LN(log9
Total time: #phases phase duration
)LN(log•L+)LN(log•C 89
)L+C(O~
X
X
91
iF
Phase k
Start
Packets may appear anywhere
92
iF
Phase k
End
Packets are accumulated at the right end
93
iF
Phase k+1
Start
94
iF
Phase k+1
Start
Free from packets
95
iF
Phase k+1
Start
Packets from set are injected hereiS
96
iF
Phase k+1
End
97
iF
Phase k+2
Start
99
iFPhase k -- Round 1
Target Column
100
Phase k -- Round 1
Target Column
iF
101
iFPhase k -- Round 2
Target Column
102
iFPhase k -- Round 2
Target Column
103
iFPhase k -- Round 3
Target Column
106
iFPhase k -- Round 1
Target Column
107
iFPhase k -- Round 1
Target Column
108
iFPhase k -- Round 2
Target Column
109
iFPhase k -- Round 3
Target Column
111
Duration of Round: )LN(log6
Number of packets that Reach target column at each round:
)LNlog(Packets Remaining
#Rounds needed: )LN(log2
112
•Leveled Networks•Congestion + Dilation•Hot-Potato Routing•Our Algorithm•Future Work
Talk Outline
113
Future Work
•Decrease logarithmic factors
•Generalize to arbitrary networks