IL-0249 Alibaba Group · 2024-10-16 (published)ai-infranetworking
Large training jobs on a cluster of over 10,000 GPUs slowed for tens of seconds to nearly ten hours without crashing
The production cluster studied has more than 4,000 nodes and over 10,000 GPUs, about 1,800 NVIDIA H800 and 2,600 A100, on a spine-leaf RoCE network with up to 4×200/400 Gbps for A100/H800 nodes and NVSwitch inside each node. It runs large training jobs on more than 1,000 GPUs, online and offline inference, recommendation model jobs and short spot jobs for debugging. Hybrid-parallel training synchronises at every iteration, so a single slow GPU or link slows the whole job. These failures, called fail-slows or stragglers, do not stop the job the way fail-stops such as GPU hangs and runtime crashes do. Because production workloads could not be instrumented, the authors measured fail-slows with small probe training jobs, submitted repeatedly as spot workloads that landed on random nodes next to production jobs, and by inspecting by hand a one-month trace of jobs that used at least 512 GPUs.
Computation fail-slows were rare and short: 6 of 392 single-node jobs, 4 from CPU contention and 2 from GPU degradation, lasting about 10 minutes and adding 11.79% to job completion time. Communication fail-slows, mostly network congestion on a link, were common and longer: 43 of 107 four-node jobs, 42 from network congestion and 1 from CPU contention, lasting about 24 minutes and adding 15.45%. Among the 27 large jobs from July 2024, 16 slowed down, 13 from network congestion and 3 from network and GPU problems together, for 72 minutes on average and 34.59% longer job completion time; there was no CPU contention because those jobs ran alone on their nodes. Across all of them, fail-slows delayed the average job completion time by 1.34×.
The usual practice was to find fail-slows by hand and handle them like fail-stops with checkpoint-and-restart, which takes much time and work; dumping a GPT2-100B checkpoint takes nearly 100 minutes, longer than the mean fail-slow in this cluster. The authors built Falcon. Falcon-Detect hooks NCCL calls through LD_PRELOAD to infer each worker's iteration time, flags slow iterations with Bayesian online change-point detection plus a check that discards changes under 10%, profiles communication groups to find suspicious ones, and briefly pauses training to run GEMM and peer-to-peer link tests. Falcon-Mitigate escalates from doing nothing to redistributing micro-batches, then adjusting the parallel topology, and as a last resort checkpoint-and-restart. Falcon-Detect diagnosed 498 of 499 probe jobs correctly, and on a 64-GPU job with injected fail-slows Falcon reduced the slowdown by 60.1%.
- Severity
- –
- Scope
- Training jobs on a shared production GPU cluster: slower iterations and longer job completion time, more than 50% longer for 20% of the large jobs inspected
- Users affected
- –
- Region
- –
- Time to detect
- –
- Time to resolve
- –
Symptoms
On a shared production cluster of over 10,000 GPUs, large hybrid-parallel training jobs kept running but slowed down, sometimes for hours, without crashing. Among 27 jobs of 512 to 1024 GPUs each submitted in July 2024, 16 slowed this way for 72 minutes on average, and their job completion time grew by 34.59% on average.
Slow computation showed as falling training throughput together with falling GPU SM utilization. In one single-node probe job, throughput dropped twice, at 22 and 55 minutes, by up to 21.6%, and SM utilization fell on all four GPUs at once; a matrix computation test run during the slowdown found no GPU degradation, and the cause was a surge of high-CPU jobs on the same node that lowered the training job's CPU satisfaction rate. In another job, all four GPUs were under-utilized for the first 10 minutes because GPU0 ran 20% slower than the others at an unusually high temperature of nearly 70°C.
Slow communication was more common and lasted longer. In one four-node probe job, throughput fell from 0.57 to 0.41 iterations/s at t=90 minutes and to 0.31 iterations/s at t=265, and SM utilization dropped on all 8 GPUs at once although the GPUs were healthy; the slowdown matched a surge of congestion notification packets (CNPs) reported by the NICs. Inter-node RDMA was the least stable path, with a latency coefficient of variation of 0.29, against 0.09 for the PCIe switch and 0.02 or less for NVLink/NVSwitch and copies inside a GPU.
At scale the causes compounded. In one 1024-GPU job, network congestion at t=62 minutes cut throughput by 80%, GPU thermal throttling at about t=80 while the congestion continued brought throughput down to 10% of normal, and from t=120 another congestion lasting about two hours cut it by 85%. In the one-month trace of large jobs, 20% of the jobs were delayed by more than 50%, and across the study the slowdowns lasted from tens of seconds to nearly ten hours.
Symptom Throughput degradation
Root cause
Root cause Capacity exhaustion
- Trigger
- –
Detection
The authors found fail-slows with small probe training jobs that tracked their own performance at runtime, and by inspecting by hand a one-month trace of large training jobs.
Remediation
- Found fail-slows by hand and handled them as fail-stops with checkpoint-and-restart
Action items
- Detect fail-slows at runtime from iteration times and locate the slow GPUs and links with Falcon-Detect
- Mitigate fail-slows with Falcon-Mitigate, escalating from cheap strategies to checkpoint-and-restart only if the slowdown persists
Lessons
Fail-slows are usually transient and come from computation, through slow GPUs or CPU contention, or from communication, mostly network congestion. Computation fail-slows are rarer and shorter and cost less, while cross-node communication fail-slows are more common, last longer and slow training more. As training grows, several performance problems are more likely to occur at once, and together they can slow training by more than 90%.
Sources
Related cases
IL-0350Hosts in an IONOS TXL cluster lost connectivity when an InfiniBand fabric resweep failed on a full multicast tableIONOS Cloud · 2026same root cause · shared InfiniBand fabric
IL-0537Sakura Cloud host servers repeatedly lost their storage connection, about five minutes per port switchoverSakura Internet · 2012same root cause · shared InfiniBand fabric
Check your cluster for this
For AI tools and scripts
- This case as JSON: https://incidentlib-api.benchlet.com/cases/IL-0249
- The cases most like it: https://incidentlib-api.benchlet.com/cases/IL-0249/similar
- MCP server (Streamable HTTP, no key):
https://incidentlib-mcp.benchlet.com/mcp
The API needs no key. The MCP server offers search_incidents, get_incident, list_incidents, get_topic and vocab; both are explained on API and MCP.