Download presentation
1
EE384y: Packet Switch Architectures
Matchings, implementation and heuristics Nick McKeown Professor of Electrical Engineering and Computer Science, Stanford University Spring 2004
2
Outline Finding a maximum match. What algorithms are used in practice?
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 2004
3
Network Flows a c Source s Sink t b d
10 1 Source s Sink t b d 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 We wish to maximize the flow allocation. Spring 2004
4
A maximum network flow example By inspection
10 1 Source s Sink t b d Step 1: Source s Sink t a c b d 10, 10 10 1 Flow is of size 10 Spring 2004
5
A maximum network flow example
Step 2: a c 10, 10 Source s Sink t 10, 10 1 10, 10 1 10, 1 b d 10, 1 1, 1 Source s Sink t a c b d 10, 10 10, 2 10, 9 1,1 1, 1 Maximum flow: Flow is of size 10+2 = 12 Not obvious Flow is of size 10+1 = 11 Spring 2004
6
Ford-Fulkerson method of augmenting paths
Set f(v,w) = -f(w,v) on all edges. Define a Residual Graph, R, in which res(v,w) = cap(v,w) – f(v,w) Find paths from s to t for which there is positive residue. Increase the flow along the paths to augment them by the minimum residue along the path. Keep augmenting paths until there are no more to augment. Spring 2004
7
Example of Residual Graph
c 10, 10 10, 10 1 s 10, 10 t 1 10 10 b d 1 Flow is of size 10 Residual Graph, R res(v,w) = cap(v,w) – f(v,w) a c 10 10 10 1 s t 1 10 10 b d 1 Augmenting path Spring 2004
8
Example of Residual Graph
Step 2: a c 10, 10 s t 10, 10 1 10, 10 1 10, 1 b d 10, 1 1, 1 Flow is of size 10+1 = 11 Residual Graph a c 10 s t 10 10 1 1 1 1 b d 1 9 9 Spring 2004
9
Example of Residual Graph
Step 3: a c 10, 9 s t 10, 10 1, 1 10, 10 1, 1 10, 2 b d 10, 2 1, 1 Flow is of size 10+2 = 12 1 Residual Graph a c 9 s t 10 10 1 1 2 2 b d 1 8 8 Spring 2004
10
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 2004
11
Outline Finding a maximum match. What algorithms are used in practice?
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 2004
12
Finding a maximum size match
B C D E F 1 2 3 4 5 6 How do we find the maximum size (weight) match? Spring 2004
13
Network flows and bipartite matching
1 B 2 Sink t Source s C 3 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 2004
14
Network flows and bipartite matching Ford-Fulkerson method
Residual Graph for first three paths: A 1 B 2 t s C 3 D 4 E 5 F 6 Spring 2004
15
Network flows and bipartite matching
Residual Graph for next two paths: A 1 B 2 t s C 3 D 4 E 5 F 6 Spring 2004
16
Network flows and bipartite matching
Residual Graph for augmenting path: A 1 B 2 t s C 3 D 4 E 5 F 6 Spring 2004
17
Network flows and bipartite matching
Residual Graph for last augmenting path: A 1 B 2 t s C 3 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 2004
18
Network flows and bipartite matching
Maximum flow graph: A 1 B 2 t s C 3 D 4 E 5 F 6 Spring 2004
19
Network flows and bipartite matching
Maximum Size Matching: A 1 B 2 C 3 D 4 E 5 F 6 Spring 2004
20
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 2004
21
Outline Finding a maximum match. What algorithms are used in practice?
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 2004
22
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 2004
23
Example of Maximal Size Matching
B C D E F 1 2 3 4 5 6 A 1 B C D E F 2 3 4 5 6 A 1 B C D E F 2 3 4 5 6 Maximal Size Matching Maximum Size Matching Spring 2004
24
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 2004
25
Outline Finding a maximum match. What algorithms are used in practice?
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 2004
26
Wave Front Arbiter (Tamir)
Requests Match 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 Spring 2004
27
Wave Front Arbiter Requests Match Spring 2004
28
Wave Front Arbiter Implementation
Simple combinational logic blocks 1,1 1,2 1,3 1,4 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 2004
29
Wave Front Arbiter Wrapped WFA (WWFA)
N steps instead of 2N-1 Requests Match Spring 2004
30
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 2004
31
Outline Finding a maximum match. What algorithms are used in practice?
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 2004
32
Parallel Iterative Matching
1 2 3 4 #1 #2 Iteration: uar selection uar selection 1 2 3 4 1 2 3 4 f2: Grant 1 2 3 4 f3: Accept/Match f1: Requests 1 2 3 4 1 2 3 4 Spring 2004
33
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 2004
34
Parallel Iterative Matching Convergence Time
Number of iterations to converge: Spring 2004
35
Parallel Iterative Matching
Spring 2004
36
Parallel Iterative Matching
PIM with a single iteration Spring 2004
37
Parallel Iterative Matching
PIM with 4 iterations Spring 2004
38
Outline Finding a maximum match. What algorithms are used in practice?
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 2004
39
iSLIP 1 2 3 4 F2: Grant 1 2 3 4 1 2 3 4 F3: Accept/Match 1 2 3 4 #1 #2 F1: Requests 1 2 3 4 1 2 3 4 Spring 2004
40
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 2004
41
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 2004
42
iSLIP Spring 2004
43
iSLIP Spring 2004
44
iSLIP Implementation Programmable Priority Encoder State Decision
1 1 log2N Decision Grant Accept 2 2 N Grant Accept log2N N N N Grant Accept log2N Spring 2004
45
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). We will see shortly that a maximal match with a speedup of 2 is stable for non-uniform traffic. Spring 2004
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.