Clos Networks
3-stage Clos Network
mxm
1
nxk kxn
1 1
n 1 2 1 n
2 … 2
… … …
N m … m N
N=nxm
k k >= n
"
With k = n, is a Clos network non
-blocking like a crossbar?
Consider the example: scheduler chooses to match
(1,1), (2,4), (3,3), (4,2)
"
With k = n is a Clos network non
-blocking like a crossbar?
Consider the example: scheduler chooses to match
(1,1), (2,2), (4,4), (5,3), …
By rearranging matches, the connections could be added.
Q: Is this Clos network “rearrangeably non-blocking”?
"
When k = n a Clos network is
rearrangeably non-blocking
Routing matches is equivalent to edge-coloring in a bipartite multigraph.
Colors correspond to middle-stage switches.
(1,1), (2,4), (3,3), (4,2)
Each vertex corresponds No two edges at a vertex
to an n x k or k x n may be colored the same.
switch.
Vizing ‘64: a D-degree bipartite graph can be colored in D colors.
Therefore, if k = n, a 3-stage Clos network is rearrangeably non-blocking
(and can therefore perform any permutation).
"
How complex is the
rearrangement?
Method 1: Find a maximum size
bipartite matching for each of D colors
in turn, O(DN2.5).
Method 2: Partition graph into Euler
sets, O(N.logD) [Cole et al. ‘00]
"
Edge-Coloring using Euler sets
Make the graph regular: Modify the
graph so that every vertex has the
same degree, D. [combine vertices and
add edges; O(E)].
For D=2i, perform i “Euler splits” and 1
-color each resulting graph. This is logD
operations, each of O(E).
"
Euler partition of a graph
Euler partiton of graph G:
1. Each odd degree vertex is at the end of one open path.
2. Each even degree vertex is at the end of no open path.
"
Euler split of a graph
G
G1
G2
Euler split of G into G1 and G2:
1. Scan each path in an Euler
partition.
2. Place each alternate edge
into G1 and G2
"
Edge-Coloring using Euler sets
Make the graph regular: Modify the
graph so that every vertex has the
same degree, D. [combine vertices and
add edges; O(E)].
For D=2i, perform i “Euler splits” and 1
-color each resulting graph. This is logD
operations, each of O(E).
"
Implementation
Request Permutation Route Paths
graph Scheduler
connections
"
Implementation
Pros
A rearrangeably non-blocking switch can perform any
permutation
A cell switch is time-slotted, so all connections are
rearranged every time slot anyway
Cons
Rearrangement algorithms are complex (in addition
to the scheduler)
Can we eliminate the need to rearrange?
"
Strictly non-blocking Clos Network
Clos’ Theorem
If k >= 2n – 1, then a new connection can always
be added without rearrangement.
"
mxm
M1
nxk kxn
1 1
I1 M2 O1
n n
I2 … O2
… … …
Im … Om
N N
N=nxm
Mk
k >= n
"
Clos Theorem
x 1 1
n – 1 already
x+n Ia in use at input Ob
and output.
n n
k
k
1. Consider adding the n-th connection between
1st stage Ia and 3rd stage Ob.
2. We need to ensure that there is always some
center-stage M available.
3. If k > (n – 1) + (n – 1) , then there is always an M
available. i.e. we need k >= 2n – 1.
"