I've worked up a spreadsheet that attempts to model how a 3-layer, nonblocking Clos (fat-tree) topology scales. For my initial case I'm dealing with a non-oversubscribed fabric, so for each switch other than those at the top layer, the (# of uplinks == # of downlinks). I've used "N" as the number of ports required, and "k" as the number of ports on an individual switch (properly called the radix).
The formulas I've gotten to are:
- top layer is N/K switches
- middle layer is 2*(N/K) switches
- the bottom layer is also 2*(N/K) switches
What I'm trying to figure out is whether or not there's a more efficient way to build this out where the bottom two levels aren't the same number of switches. What I think I've gotten myself to is that unless you remove the restriction on nonblocking these layers have to be the same width (meaning the same number of switches)
Can anyone suggest a more efficient way to build/scale/wire this up?