Skip to the lesson

Module 3 · Lesson 6 of 8 · 4 min

Goodput: Failure, Checkpointing, and Real Throughput

0:00 / 6:28

At small scale you can assume the hardware works. At large scale you must assume it fails, constantly, and design around it. A cluster of tens of thousands of accelerators running for weeks will suffer failures as a matter of statistics: a chip faults, a link drops, a power event trips a rack, a cooling excursion throttles a row. The question is never whether components fail during a long run — they will — but how much useful work the cluster loses each time, and that loss is a design choice, not an act of fate. The metric that captures it is goodput: the fraction of the cluster's time that produces useful, kept work, as opposed to time spent idle, recovering, or redoing work that a failure destroyed.

Goodput sits below utilization and is often the more honest number. A cluster can run its arithmetic units hard — high utilization in the moment — and still deliver poor goodput because failures keep forcing it to discard progress and restart. The gap between the two is pure operational loss, and it is where a great deal of a cluster's real capacity quietly disappears. An operator who tracks only instantaneous utilization can be blind to a goodput problem that is halving the effective output of the fleet.

The central defense is checkpointing: periodically saving the state of the run to durable storage so that after a failure the job resumes from the last save rather than from the beginning. Checkpointing turns a catastrophe — losing weeks of work — into an inconvenience — losing minutes. But it carries a cost, and the tension it creates is instructive. Saving state stops or slows the run and consumes storage bandwidth, so checkpoint too often and the overhead itself eats goodput; checkpoint too rarely and each failure discards more work. The right interval balances the cost of saving against the expected cost of a failure, and at large scale, where failures are frequent, that interval must be short — which in turn demands enough storage bandwidth to save state quickly. The storage and data-movement layer, easy to overlook, becomes a determinant of how much compute the cluster actually keeps.

Detection and recovery speed matter as much as the checkpoint itself. When a chip fails, the system must notice quickly, identify the failed component, remove it, bring in a spare or reconfigure around the gap, and restart from the last checkpoint. Every minute spent detecting and recovering is a minute of the entire cluster idled, because the synchronized nature of the work means the whole job waits. Mature operators invest heavily in fast failure detection and automated recovery precisely because the cost of a slow response is multiplied by every chip in the job. A cluster that recovers in minutes and one that recovers in hours can own identical hardware and deliver very different goodput over a long run.

There is a subtler failure mode than the outright fault: the straggler. A single chip running slightly slow — throttled by heat, hampered by a marginal link, burdened by an unlucky share of the work — holds up every other chip at the next synchronization barrier, because the collective waits on the slowest participant. One degraded component out of thousands can drag the effective speed of the whole job toward its own. Finding and evicting stragglers is a continuous operational discipline, and it is invisible to anyone measuring only aggregate hardware health, because every component reports as working — just one of them works a little slower than the rest.

All of this compounds the earlier lessons into a single conclusion about scale. The larger the cluster, the more failures per unit time, the more often the collective stalls, the more goodput depends on fast checkpointing, fast recovery, and aggressive straggler management — none of which are properties of the silicon. They are properties of the software, the storage, and the operational practice wrapped around it. Two operators with identical chips, identical memory, and identical fabric can deliver substantially different amounts of finished work over a month purely because one has engineered for failure and the other has not.

For the operator, goodput is the number that should govern capacity planning, because it, not peak or even utilization, predicts how much finished work a cluster produces over the timescales that matter. For the investor, an operator's demonstrated goodput at scale is a direct read on execution quality and a moat that raw hardware access cannot buy: the ability to keep a very large machine producing through constant failure is hard-won and slow to copy. For the policy reader, it is the final correction to any silicon-only view of capability — a large installed fleet run at poor goodput delivers far less than its chip count implies, and the operational competence to run at high goodput is itself a strategic asset, as consequential as the hardware it protects.