Sei sulla pagina 1di 45

EE384y: Packet Switch Architectures

Matchings, implementation and heuristics

H i g h P e r fo r m a n c e
S w i tc h i n g a n d R o u t in g
Te lec . om Ce nte rW ork sho p: Se pt4 ,1 97

Nick McKeown
Professor of Electrical Engineering
and Computer Science, Stanford University
nickm@stanford.edu
www.stanford.edu/~nickm

Spring 2006
1
Outline
 Finding a maximum match.
 Maximum network flow problems
• Definitions and example
• Augmenting paths
 Maximum size/weight matchings as examples of maximum network
flows
• Maximum size matching
• Complexity of maximum size matchings and maximum weight matchings
 What algorithms are used in practice?
 Maximal Matches
 Wavefront Arbiter (WFA)
 Parallel Iterative Matching (PIM)
 iSLIP

Spring 2006
2
Network Flows
a 10 c
Source 10 10 Sink
s 1 t
10 1 10
b d
1

• Let G = [V,E] be a directed graph with capacity


cap(v,w) on edge [v,w].
• A flow is an (integer) function, f, that is chosen
for each edge so that f (v, w) ≤ cap(v, w).
• We wish to maximize the flow allocation.
Spring 2006
3
A maximum network flow example
By inspection
a 10 c
Source 10 10 Sink
s 1 t
10 1 10
b d
1

Step 1:
a 10, 10 c
Source 10, 10 Sink
s 10, 10 1 t
10 1 10
b d
1
Flow is of size 10
Spring 2006
4
A maximum network flow example
Step 2: a 10, 10 c
Source 10, 10 Sink
s 10, 10 1 t
10, 1 1
b d 10, 1
1, 1

Flow is of size 10+1 = 11 Not


Maximum flow: obvious
a 10, 9 c
Source 10, 10 Sink
s 1,1 t
10, 10
10, 2 1,1
b d 10, 2
1, 1
Flow is of size 10+2 = 12
Spring 2006
5
Ford-Fulkerson method of
augmenting paths
1. Set f(v,w) = -f(w,v) on all edges.
2. Define a Residual Graph, R, in which
res(v,w) = cap(v,w) – f(v,w)
3. Find paths from s to t for which there is
positive residue.
4. Increase the flow along the paths to
augment them by the minimum residue
along the path.
5. Keep augmenting paths until there are no
more to augment.
Spring 2006
6
Example of Residual Graph
a 10, 10 c
10, 10
10, 10 1
s t
10 1 10
b d
1
Flow is of size 10

Residual Graph, R
res(v,w) = cap(v,w) – f(v,w)
a 10 c
10 10
1
s t
10 1 10
b d
1 Augmenting path

Spring 2006
7
Example of Residual Graph
Step 2: a 10, 10 c
10, 10
s 10, 10 1 t
10, 1 1
b d 10, 1
1, 1

Flow is of size 10+1 = 11

Residual Graph
a 10 c
10 10
s 1 t
1 1 1
b d 9
9 1

Spring 2006
8
Example of Residual Graph
Step 3: a 10, 9 c
10, 10
s 10, 10 1, 1 t
10, 2 1, 1
b d 10, 2
1, 1

Flow is of size 10+2 = 12

1
Residual Graph
a 9 c
10 10
s 1 t
2 1 2
b d 8
8 1

Spring 2006
9
Complexity of network flow
problems
 In general, it is possible to find a solution
by considering at most |V|.|E| paths, by
picking shortest augmenting path first.
 There are many variations, such as picking
most augmenting path first.

Spring 2006
10
Outline
 Finding a maximum match.
 Maximum network flow problems
• Definitions and example
• Augmenting paths
 Maximum size/weight matchings as examples of maximum network
flows
• Maximum size matching
• Complexity of maximum size matchings and maximum weight matchings
 What algorithms are used in practice?
 Maximal Matches
 Wavefront Arbiter (WFA)
 Parallel Iterative Matching (PIM)
 iSLIP

Spring 2006
11
Finding a maximum size match

A 1
B 2
C 3
D 4
E 5
F 6

 How do we find the maximum size (weight) match?

Spring 2006
12
Network flows and bipartite matching

A 1
B 2
Source Sink
C 3
s t
D 4
E 5
F 6

Finding a maximum size bipartite matching is equivalent


to solving a network flow problem with capacities and
flows of size 1.

Spring 2006
13
Network flows and bipartite matching
Ford-Fulkerson method
Residual Graph for first three paths:

A 1
B 2
C 3
s t
D 4
E 5
F 6

Spring 2006
14
Network flows and bipartite matching

Residual Graph for next two paths:

A 1
B 2
C 3
s t
D 4
E 5
F 6

Spring 2006
15
Network flows and bipartite matching

Residual Graph for augmenting path:

A 1
B 2
C 3
s t
D 4
E 5
F 6

Spring 2006
16
Network flows and bipartite matching

Residual Graph for last augmenting path:

A 1
B 2
C 3
s t
D 4
E 5
F 6

Note that the path augments the match: no input and output
is removed from the match during the augmenting step.
Spring 2006
17
Network flows and bipartite matching

Maximum flow graph:

A 1
B 2
C 3
s t
D 4
E 5
F 6

Spring 2006
18
Network flows and bipartite matching

Maximum Size Matching:

A 1
B 2
C 3
D 4
E 5
F 6

Spring 2006
19
Complexity of Maximum
Matchings
 Maximum Size Matchings:
 Algorithm by Dinic O(N5/2)
 Maximum Weight Matchings
 Algorithm by Kuhn O(N3)

 In general:
 Hard to implement in hardware
 Slooooow.

Spring 2006
20
Outline
 Finding a maximum match.
 Maximum network flow problems
• Definitions and example
• Augmenting paths
 Maximum size/weight matchings as examples of maximum network
flows
• Maximum size matching
• Complexity of maximum size matchings and maximum weight matchings
 What algorithms are used in practice?
 Maximal Matches
 Wavefront Arbiter (WFA)
 Parallel Iterative Matching (PIM)
 iSLIP

Spring 2006
21
Maximal Matching
 A maximal matching is one in which each
edge is added one at a time, and is not
later removed from the matching.
 i.e. no augmenting paths allowed (they
remove edges added earlier).
 No input and output are left
unnecessarily idle.

Spring 2006
22
Example of Maximal Size Matching

A 1 A 1 A 1
B 2 B 2 B 2
C 3 C 3 C 3
D 4 D 4 D 4
E 5 E 5 E 5
F 6 F 6 F 6

Maximal Maximum
Size Matching Size Matching

Spring 2006
23
Maximal Matchings
 In general, maximal matching is simpler to
implement, and has a faster running time.
 A maximal size matching is at least half the
size of a maximum size matching.
 A maximal weight matching is defined in
the obvious way.
 A maximal weight matching is at least half
the weight of a maximum weight matching.

Spring 2006
24
Outline
 Finding a maximum match.
 Maximum network flow problems
• Definitions and example
• Augmenting paths
 Maximum size/weight matchings as examples of maximum network
flows
• Maximum size matching
• Complexity of maximum size matchings and maximum weight matchings
 What algorithms are used in practice?
 Maximal Matches
 Wavefront Arbiter (WFA)
 Parallel Iterative Matching (PIM)
 iSLIP

Spring 2006
25
Wave Front Arbiter
(Tamir)

Requests Match
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
Spring 2006
26
Wave Front Arbiter

Requests Match

Spring 2006
27
Wave Front Arbiter
Implementation

Simple combinational
1,1 1,2 1,3 1,4 logic blocks
2,1 2,2 2,3 2,4

3,1 3,2 3,3 3,4

4,1 4,2 4,3 4,4

Spring 2006
28
Wave Front Arbiter
Wrapped WFA (WWFA)
N steps instead of
2N-1

Requests Match

Spring 2006
29
Wavefront Arbiters
Properties
 Feed-forward (i.e. non-iterative) design
lends itself to pipelining.
 Always finds maximal match.

 Usually requires mechanism to prevent Q11


from getting preferential service.
 In principle, can be distributed over
multiple chips.

Spring 2006
30
Outline
 Finding a maximum match.
 Maximum network flow problems
• Definitions and example
• Augmenting paths
 Maximum size/weight matchings as examples of maximum network
flows
• Maximum size matching
• Complexity of maximum size matchings and maximum weight matchings
 What algorithms are used in practice?
 Maximal Matches
 Wavefront Arbiter (WFA)
 Parallel Iterative Matching (PIM)
 iSLIP

Spring 2006
31
Parallel Iterative Matching
Iteration:

uar selection uar selection

1 1 1 1 1 1
#1 2 2 2 2 2 2
3 3 3 3 3 3
4 4 4 4 4 4
φ 1: Requests φ 2: Grant φ 3: Accept/Match
1 1 1 1 1 1
2 2 2 2 2 2
#2
3 3 3 3 3 3
4 4 4 4 4 4
Spring 2006
32
PIM Properties
 Guaranteed to find a maximal match in at
most N iterations.
 In each phase, each input and output
arbiter can make decisions independently.
 In general, will converge to a maximal
match in < N iterations.
 How many iterations should we run?

Spring 2006
33
Parallel Iterative Matching
Convergence Time

Number of iterations to converge:

N2 C = # of iterations required to resolve connections


E [ U i ] ≤ -------
4i N = # of ports
E [ C] ≈ log N U i = # of unresolved connections after iteration i

Spring 2006
34
Parallel Iterative Matching

Spring 2006
35
Parallel Iterative Matching

PIM with a
single iteration

Spring 2006
36
Parallel Iterative Matching

PIM with 4
iterations

Spring 2006
37
Outline
 Finding a maximum match.
 Maximum network flow problems
• Definitions and example
• Augmenting paths
 Maximum size/weight matchings as examples of maximum network
flows
• Maximum size matching
• Complexity of maximum size matchings and maximum weight matchings
 What algorithms are used in practice?
 Maximal Matches
 Wavefront Arbiter (WFA)
 Parallel Iterative Matching (PIM)
 iSLIP

Spring 2006
38
iSLIP 1
4 2
1 1 1 1 3 1 1
#1 2 2 2 2 2 2
3 3 3 3 3 3
4 4 4 4 4 4
Φ 1: Requests Φ 2: Grant Φ 3: Accept/Match
1 1 1 1 1 1
2 2 2 2 2 2
#2
3 3 3 3 3 3
4
Spring 2006
4 4 4 4 4
39
iSLIP Operation
 Grant phase: Each output selects the
requesting input at the pointer, or the next
input in round-robin order. It only updates
its pointer if the grant is accepted.
 Accept phase: Each input selects the
granting output at the pointer, or the next
output in round-robin order.
 Consequence: Under high load, grant
pointers tend to move to unique values.
Spring 2006
40
iSLIP
Properties
 Random under low load
 TDM under high load
 Lowest priority to MRU
 1 iteration: fair to outputs
 Converges in at most N iterations. (On average,
simulations suggest < log2N)
 Implementation: N priority encoders
 100% throughput for uniform i.i.d. traffic.
 But…some pathological patterns can lead to low
throughput.

Spring 2006
41
iSLIP

Spring 2006
42
iSLIP

Spring 2006
43
Programmable
iSLIP
Priority Encoder Implementation

N 1 1 log2N
Grant Accept

N 2 2 log2N
Grant Accept
State Decision

N N N log2N
Grant Accept

Spring 2006
44
Maximal Matches
 Maximal matching algorithms are widely
used in industry (PIM, iSLIP, WFA and
others).
 PIM and iSLIP are rarely run to completion
(i.e. they are sub-maximal).
 A maximal match with a speedup of 2 is
stable for non-uniform traffic.

Spring 2006
45

Potrebbero piacerti anche