Skip to content

Chapter 7: Topology Design -- From One Node to a SuperPOD · Part 5 of 11

Act 4 -- Oversubscription: when the topology cannot keep up

Definition and calculation

Oversubscription ratio is the ratio of the total potential server-facing bandwidth to the total uplink bandwidth at a given fabric layer.

Oversubscription ratio = Total downlink bandwidth / Total uplink bandwidth

Where:
  Total downlink bandwidth = (number of switches in layer) x (downlinks per switch) x (link speed)
  Total uplink bandwidth   = (number of switches in layer) x (uplinks per switch) x (link speed)

For a non-blocking (fully subscribed) design, every server port has a corresponding uplink. Oversubscription ratio = 1:1.

For a 2:1 oversubscribed design, every two server ports share one uplink. During AllReduce, when both servers send simultaneously, they compete for one uplink -- half of each server's bandwidth is unusable.

Oversubscription calculator

Adjust downlinks and uplinks per leaf switch to calculate oversubscription ratio

Leaf switches in fabric8
Downlinks per leaf (→ DGX nodes)32
Uplinks per leaf (→ spine)32
Oversubscription ratio
1.0:1
Non-blocking ✓
Total server bandwidth
102 Tb/s
Total fabric uplink BW
102 Tb/s
Effective AllReduce BW
102 Tb/s
Non-blocking: This configuration can sustain full AllReduce at NIC line rate across all 32 DGX nodes simultaneously. PFC and ECN may still fire during burst periods — that is expected and healthy.

Why enterprise oversubscription assumptions fail for AI

Enterprise data centers routinely use 4:1 or even 8:1 oversubscription at the spine layer. The justification: statistical multiplexing -- not all servers send at full rate simultaneously. Web servers, databases, and application servers spend most of their time idle or lightly loaded. The aggregate bandwidth across all servers peaks at maybe 20-30% of theoretical maximum. A 4:1 oversubscription gives you 25% of line rate -- more than enough.

AI training destroys this assumption. During AllReduce:

  • Every GPU is transmitting at full rate simultaneously
  • Every NIC is running at 400G simultaneously
  • The aggregate bandwidth is not 20-30% of maximum -- it is 100% of maximum
  • Statistical multiplexing provides zero benefit

A 2:1 oversubscribed fabric in an AI training cluster does not degrade gracefully to 50% throughput. It creates a permanent congestion condition at the spine layer -- every AllReduce barrier causes PFC storms that cascade down to every leaf switch. JCT increases. The congestion management mechanisms you configured in Chapters 5 and 6 are fighting the topology rather than compensating for bursty traffic.

The compound oversubscription problem

In a multi-stage topology, oversubscription at each layer multiplies. If the leaf-to-spine layer is 2:1 oversubscribed and the spine-to-core layer is also 2:1, the effective oversubscription at the bisection is 4:1.

Effective oversubscription = Product of oversubscriptions at each layer

Example:
  Leaf -> Spine: 2:1 (each leaf switch has 2x more downlinks than uplinks)
  Spine -> Core: 2:1 (each spine switch has 2x more downlinks than uplinks)
  Effective at bisection: 2:1 x 2:1 = 4:1

  AllReduce will run at ~=25% of NIC line rate.

This is why topology review before purchase matters. A cluster that looks like it has "enough bandwidth" may be silently 4:1 oversubscribed at the bisection -- and you will only discover this when training runs at a quarter of expected throughput.

Undersubscription: when to go the other direction

Some deployments deliberately use undersubscription -- more uplink ports than server-facing ports at a given switch. This sounds wasteful (you are paying for ports you are not using for servers), but it serves two purposes:

1. Dedicated egress buffers: When each server-facing port has more than one uplink to the spine, each uplink can be assigned exclusively to one group of server ports. Traffic from those servers never competes with traffic from other servers for the same egress buffer. This eliminates in-cast congestion at the leaf-to-spine boundary.

2. Per-packet spraying headroom: With more uplinks than downlinks, the leaf switch can spray each packet across a wider set of paths without any path becoming overloaded even in the worst case. The math works in your favour: if you have 2x as many uplinks as downlinks, the maximum load any spine link can receive during in-cast is 50% of its capacity -- well below any PFC or ECN threshold.

Undersubscription adds cost but is used in ultra-performance clusters where JCT is a hard operational target and every microsecond of AllReduce latency has a dollar value.