AI Infra Interviews logo
AI Infrastructure System Design / 06
hard★ EssentialNewMetaxAICrusoe

Design a training cluster for 10,000 GPUs: pods, fabric, storage, failure domains and the scheduler. Justify every number.

Ten thousand GPUs is 1,280 nodes, ten pods, about 700 switches, a filesystem that swallows a 5 TB checkpoint in under a minute and a 14 MW feed. The bill of materials with a reason on every line, from the FLOPs the model needs to the spare pool the failure rate demands.

Updated Sep 2026 · Grounded in real AI infrastructure interview loops and written to a senior-engineer editorial bar, with every number worked and every diagram hand-built.

TL;DR: Start from what the cluster must train: a 350B dense model on 15T tokens is 3.2 × 10²⁵ FLOPs, which 10,240 H100s at 40% MFU finish in about 100 days of effective time. Nodes of 8 GPUs, pods of 1,024 (128 nodes) inside one non-blocking fabric tier, ten pods joined by a 2:1 oversubscribed core; tensor parallel on NVLink, pipeline inside a pod, data parallel hierarchical so the core carries the least. Storage sized from the checkpoint: 350B × 16 B = 5.6 TB, written in under a minute through local NVMe. Power about 14 MW at the feed. A stop every 5 hours means 3% warm spares, asynchronous checkpoints every 10 minutes and automated restart.

How to approach it

Ask what the cluster is for (one frontier run, or many jobs), which model and how many tokens, the deadline, the site's power, and whether it must be on one floor. Say the GPU count comes from the FLOPs and the deadline, then everything else serves that number. Work down the stack in order: nodes and pods, the fabric with port counts, storage from the checkpoint, power at the feed, failure statistics into spares and cadence, then the control plane. End with the table.

A strong answer

A typical situation: a lab has committed to 10,240 H100s and wants to know what it can train in a quarter, and how to lay it out. Training Cluster Design at 10k GPUs is the reference derivation; the answer below runs it in the order a candidate says it.

step 1: what 10,240 GPUs can train
  sustained per GPU = 989 TFLOPS × 0.40 MFU ≈ 396 TFLOPS
  100 days at 90% effective = 7.8e6 s → 10,240 × 3.96e14 × 7.8e6 ≈ 3.2e25 FLOPs
  6 × N × D = 3.2e25 → N × D = 5.3e24 → a 350B model on 15T tokens
sanity: a 405B on 15.6T took about 16k GPUs and 54 days at similar MFU; 350B on 15T at 10k GPUs
        in 100 days is the same order
rendering diagram…

Nodes and pods. A node is 8 GPUs on an NVLink switch at 900 GB/s per GPU, one 400 Gb/s NIC per GPU, several TB of NVMe, and 10 to 15 kW. 10,240 GPUs is 1,280 nodes. A pod is the set of nodes inside one non-blocking tier: with 64-port switches used as 32 down and 32 up, rail-optimized, that is 128 nodes (1,024 GPUs), so the cluster is ten pods. The parallelism plan decides what crosses what.

axis placement for the 350B run
  TP 8: inside the node on NVLink; four activation collectives per layer, never on the NIC
  PP 8: across 8 nodes in one pod; one activation tensor per micro-batch per boundary
  DP 160: 10,240 ÷ 64 GPUs per replica; gradients once per step
    per-GPU gradient shard = 350e9 × 2 B ÷ 64 = 10.9 GB; ring all-reduce ≈ 2 × 10.9 = 22 GB per step per GPU
    hierarchical: reduce-scatter among the 16 replicas in a pod, then all-reduce the 1/16 shard across pods
    cross-pod volume per GPU ≈ 22 ÷ 16 ≈ 1.4 GB per step, at 25 GB/s per NIC at 2:1 ≈ 55 ms, overlapped
sanity: the expensive tier carries the least traffic; that is the whole reason for pods

The fabric, with ports.

per pod: 1,024 endpoints; rail r's 128 NICs ÷ 32 down-ports = 4 leaves per rail × 8 rails = 32 leaves
  spines: 32 leaves × 32 uplinks = 1,024 links ÷ 32 = 32 spines (non-blocking in-pod)
core at 2:1: 512 up-ports per pod × 10 = 5,120 ports ÷ 64 = 80 core switches
totals: 320 leaves + 320 spines + 80 core = 720 switches; about 25,000 cables, spine and core optical

Storage from the checkpoint. 350B × 16 B (bf16 weights and gradients, fp32 master and two Adam moments) = 5.6 TB per full checkpoint. Target under a minute so a 10-minute cadence costs under 10% even when synchronous: at least 95 GB/s aggregate. Asynchronous checkpoints hand state to host memory in seconds and let the host write at leisure, with local NVMe absorbing the burst (1,280 nodes × 7 GB/s = 9 TB/s of local write). A parallel filesystem at 100 to 200 GB/s holds the last few, and object storage keeps one per day. Data loading is 15T tokens over 100 days ≈ 1.7 M tokens/s, a few GB/s, trivial for the filesystem and non-trivial for the loader CPUs if tokenization happens online.

Power. 10,240 × 700 W = 7.2 MW at the chips; hosts, NICs and fans add about 40% → 10 MW; network, storage and management 1 MW; at a PUE of 1.25, about 14 MW at the feed. Air cooling is workable at Hopper density; the next generation at 120 kW racks is liquid.

Failures. At roughly 2 × 10⁻⁵ failures per GPU-hour, 10,240 GPUs stop about every 5 hours. Each stop costs T/2 + R; with asynchronous checkpoints every 10 minutes and a 5-minute automated restart that is 10 minutes, or 3.3% of the run, which is where the 90% effective time above came from. Spares: 1,280 nodes × 0.2 failures per node-day × 3-day repair ≈ 2% in repair, so keep 3% (about 40 nodes) warm and spread across pods. Failure domains are the pod (a spine), the rack (power) and the leaf (16 to 32 nodes); never place all of a pipeline stage's replicas on one leaf.

Control plane. A gang- and topology-aware scheduler, a fabric manager per node, an image and weight cache on every node, telemetry at about 80,000 GPU series per field, and a launcher that sets ranks to rails. A frontier run owns whole pods; smaller jobs share the remainder under quotas.

The trade-off to commit to is the 2:1 core. Non-blocking across pods costs roughly twice the core switches and optics and buys nothing if the DP traffic is hierarchical. The reversal condition: a parallelism plan that spans pods with pipeline or tensor traffic, or a multi-tenant cluster where many 2,048-GPU jobs straddle pods, and the core must go to 1:1. The Bill of Materials for a Training Cluster is this list priced, and nvidia-smi topo -m on the first node is where the design meets the hardware.

LineQuantityReason
GPUs10,240 H1003.2e25 FLOPs in 100 days at 40% MFU
nodes, pods1,280 nodes, 10 pods of 1,024TP on NVLink, PP and most DP inside a pod
fabric320 leaves, 320 spines, 80 core, ~25k cablesnon-blocking in-pod, 2:1 across
storageNVMe burst, parallel FS 100 to 200 GB/s, object archive5.6 TB checkpoints in under a minute
power~14 MW at the feed700 W per GPU plus overheads and PUE
spares, cadence~40 warm nodes, async checkpoints every 10 mina stop every 5 h, 3-day repair

What interviewers probe next

  • "Budget is halved; what do you cut?" Time, to 200 days; not MFU (unbuyable) and not the in-pod fabric (an oversubscribed pod costs more step time than it saves).
  • "Why not one non-blocking fat tree?" Same guarantee at roughly double the optics; the pod structure exists because the parallelism plan makes it sufficient.
  • "What changes on B200 nodes?" 180 GB and 1.8 TB/s NVLink shrink PP and grow DP; 800 Gb/s NICs halve the collective time; 120 kW racks force liquid cooling; the FLOP count halves the GPU count for the same run.

Common mistakes

  • "10,000 GPUs on a fat tree with a Lustre filesystem" with no derivation for any number.
  • Sizing storage from capacity instead of checkpoint write bandwidth.
  • Treating failures as an operations problem rather than a design input.
  • Placing pipeline stages across pods and then complaining about the core.

Key takeaways

  • GPUs = FLOPs ÷ (peak × MFU × seconds); 10,240 H100s for 100 days trains about 350B on 15T.
  • Pods of 1,024 non-blocking; TP on NVLink, PP in the pod, DP hierarchical; the core carries about 1.4 GB per GPU per step.
  • Checkpoint = params × 16 B = 5.6 TB; under a minute means about 100 GB/s, via NVMe burst.
  • A stop every 5 hours: 3% spares, async checkpoints every 10 minutes, automated restart, about 90% effective time.
That one was free — and so are 10 answers per topic without an account. Signing in doubles that to 20, opens the Plus lessons in the courses, and remembers which topics you keep getting wrong.no card · Google sign-in · nothing to cancel
HOW DID IT GO?
0
READING SIGNED OUT

Signing in doubles your free answers, from 10 to 20 per topic, and the site starts remembering you: mastery per topic, bookmarks, and a next-focus recommendation. Free, no card.

Sign in free

The concepts behind this question

Ranked by how closely each one overlaps this question's topic, so the first card is the thing to read if the answer above moved too fast.

Advanced
📐 AI Systems Design🔒 Premium
Training Cluster Design at 10k GPUsDesign a cluster for training frontier models is the prompt that tests whether a candidate can hold hardware, network, storage, scheduling and reliability in one head at once. The answer is a bill of materials with a reason for every line: how many GPUs and why, how they are grouped into pods, how the fabric connects the pods and what it costs a collective to cross one, how much storage bandwidth the checkpoints and the data loader need, how power and cooling bound the whole thing, and how the failure statistics set the spare pool and the checkpoint cadence. This page derives each line for a 10,240-GPU cluster.
Core
🗂️ Scheduling & OrchestrationSign in
Slurm for AI ClustersSlurm is the scheduler most large training clusters still run, because it was built for exactly this shape of work: long jobs that need many nodes at once, launched with one command, placed with knowledge of the network. A candidate for a training-infrastructure role is expected to read an sbatch script, know how GPUs are requested and enforced, and explain why a job is stuck in the queue. This page covers the model, the commands that matter, the GPU-specific configuration, and the failure modes a platform engineer meets.
Advanced
🔌 Networking & Storage🔒 Premium
Rail-Optimized and Fat-Tree FabricsA GPU cluster's network is built from two ideas: a fat tree (Clos) that gives every node a path to every other node with a chosen amount of oversubscription, and rail optimization, which wires GPU i of every node to the same leaf switch so the collectives that dominate training stay one hop away. Sizing one is arithmetic on port counts, and the interview question is usually that arithmetic: how many switches, what oversubscription, and where the NVLink domain ends and the fabric begins.
Advanced
🧮 Napkin Math & Capacity🔒 Premium
Power and Datacenter ConstraintsThe binding constraint on new GPU capacity in 2026 is not chips or capital but megawatts: an H100 node draws about 10 kW, a GB200 NVL72 rack about 120 kW, and a 100,000-GPU cluster needs on the order of 150 MW with cooling. This page converts GPU counts to power, power to cooling and facility requirements, and both to cost, so a candidate can size a training hall from a power budget and explain why liquid cooling, PUE and the local grid decide where the next cluster goes.
UP NEXT ON YOUR JOURNEY
FEDITOR'S NOTE

Scored on deriving the GPU count from the training FLOPs, on placing each parallel axis on the link that can carry it, on port-level fabric arithmetic, and on treating failures as a design input with a spare pool and a checkpoint cadence.

DISCUSSION · 0

No comments yet — be the first to share your approach.