GPU cluster schedulingFinding the conditions under which size-first scheduling breaks日本語
Current finding
The previous study demoted the detector and put this domain’s operational numbers on hold. The replacement candidate is alpha — the elasticity of mean response time with respect to the observation window:
alpha = d log(mean response time) / d log(observation window)
0 = converged, 1 = linear divergence
Unlike flow balance it is not normalised by the window, so divergence cannot cancel.
Measured under seal across four windows (30,000 to 240,000 jobs), eight seeds, 1440 runs. The deciding prediction passed.
Alpha has three properties:
| Property | Measured | Flow balance |
|---|---|---|
| Reads 0 where the system is plainly stable | −0.046 to +0.029 | ranges 0.88 to 1.00 by condition |
| Reads 1 where it plainly is not | 0.899 to 0.984 | 0.25 to 0.65 |
| Boundary unmoved when the window is multiplied by eight | −0.021 to +0.006 | unmoved, but because divergence cancels |
| Precise enough to quote | 90% interval half-width 0.013 to 0.021 | published margin was 0.10 of one job |
The hold on operational numbers is lifted.
This study also checked, with an independent detector, the most-cited claim in the domain: that EASY backfill has never broken a class. Even for a whole-pool class, alpha is about 0. It was not an artifact of the blind detector.
Key figure
alpha ≈ 0
converged0.875
alpha 0.29–0.951.0
alpha ≈ 0.96
linear divergence
The axis is the largest job’s share of pool capacity. Alpha reads 0 at the plainly stable left end and 1 at the plainly divergent right end — a calibration flow balance never had.
Results
Operational numbers, on the alpha basis
256 servers, rho 0.85, exponential service, no restart cost, background geometric over {1…64}. Decision line alpha = 0.5, windows 30,000 to 240,000 jobs, eight seeds, 90% bootstrap interval.
| Concurrency | Frequency of the largest class | Safe maximum job ratio | 90% interval |
|---|---|---|---|
| 10 | 0.002 | 0.92 | [0.903, 0.932] |
| 10 | 0.02 | 0.72 | [0.706, 0.732] |
| 15 | 0.002 | 0.85 | [0.834, 0.863] |
| 15 | 0.02 | 0.68 | [0.667, 0.695] |
| 30 | 0.002 | 0.73 | [0.713, 0.749] |
| 30 | 0.02 | 0.66 | [0.640, 0.682] |
Do not drop the frequency column. Its absence is why the old table kept breaking across three studies.
Against the old table — the errors did not share a direction.
| Concurrency | Old published value | alpha (freq 0.002) | alpha (freq 0.02) |
|---|---|---|---|
| ~10 | 0.875 | 0.92 | 0.72 |
| ~15 | 0.8125 | 0.85 | 0.68 |
| ~30 | 0.625 | 0.73 | 0.66 |
The old table was conservative for rare large jobs (0.04 to 0.11 low) and dangerous for frequent ones (0.875 against 0.72 at concurrency 10). Grid rounding pushes the boundary down (conservative, mean 0.040); the censoring ratio’s blindness pushes it up (dangerous). At low frequency the first wins, at high frequency the second. Publishing a single number meant it could not even be wrong in a consistent direction.
Deciding prediction: the boundary stays put. Alpha fitted on three windows against four differs by −0.021 to +0.006; all six cells are inside the sealed tolerance of 0.03.
Bootstrap. Over 2000 resamples of the eight seeds, the 90% interval half-width is 0.013 to 0.021 — a third of the sealed criterion of 0.06.
EASY backfill.
| Concurrency | ratio 0.875 | ratio 1.0 |
|---|---|---|
| 10 | 0.020 | 0.011 |
| 15 | 0.009 | −0.008 |
| 30 | −0.002 | −0.013 |
Against greedy SRPT’s 0.90 to 0.98 in the same conditions, this is not a detector artifact.
What this research shows
- Alpha reads 0 where stable and 1 where divergent, moves the boundary by at most 0.02 when the window is multiplied by eight, and is quotable to a 90% half-width of 0.02.
- The operational table on that basis, including a frequency column.
- The old table’s errors did not share a direction; which way it erred flipped with frequency.
- EASY backfill’s class health is confirmed by an independent detector.
What this research does not show
- The decision line alpha = 0.5 is a convention — the midpoint between converged and linearly divergent — not a derived criterion. The observation that moving the line between 0.3 and 0.7 shifts the boundary by only ±0.04 while preserving the ordering is unsealed.
- Mean response time averages completed jobs only. The more severely a class diverges, the more its slow jobs are excluded, so alpha is biased downward at the divergent end. The alpha boundary therefore errs toward calling things stable.
- No scheduling policy was run on a real arrival stream. One load, one pool size, one service distribution, one background family.
Why this matters
This domain reached a state where changing the detector changed every number. Getting out of it required sealing a prediction about the detector itself, not about the numbers.
The deciding prediction was whether adding one more observation window moves the boundary. Only once that is shown not to happen can the boundary be handed to an operator. Had it moved, the conclusion would have been that no finite-window statistic has a fixed point here, and the plan was to move to a test that does not depend on a window at all.
The qualitative axis has not broken once across five detector changes and three retractions. What broke was always the numbers.
Research question
- Does alpha give a boundary that stops moving when a window is added?
- Is it precise enough to quote?
- Was EASY backfill’s health an artifact of the blind detector?
Method
7 ratios × 3 concurrency levels × 2 frequencies × 4 windows (30,000 / 60,000 / 120,000 / 240,000 jobs) × 8 seeds — 1344 runs, plus 96 EASY backfill controls. 1440 runs, 57 minutes on eight workers.
Seeds 901–905 at 30,000 to 120,000 double as a replay gate against the previous study; 630 rows reproduced at difference 0.
Sealed as PRED-013 with SHA-256 803590cd3c15b5dd383e2f4a900c129e79c66ea7db786c54842b70ee87ba830c, committed while no corresponding result file existed.
What changed
- The hold was lifted and the operational table reissued on the alpha basis, now with a frequency column.
- The detector was replaced, from flow balance to alpha.
- A correction band was added to the previous study’s exploratory claim that the old table erred optimistic. In fact the errors did not share a direction.
What failed
PRED-013 scored 8 of 11. The deciding prediction G1 passed.
G2 (monotonicity) failed. At concurrency 10 and frequency 0.002, alpha goes from 0.01 to −0.06 between ratios 0.5 and 0.625. Both are effectively zero, and away from zero the sequence is monotone in every condition. The criterion that counts fluctuation around zero as a monotonicity violation is one I wrote. The failure is still recorded as a failure.
G3 (uniform optimism) failed. “The alpha boundary is at least 0.04 below the flow-balance boundary” held in only four of six cells; at frequency 0.002 the two nearly coincide. The previous study’s exploratory claim, fitted on three windows and five seeds, overstated the gap in the rare-job conditions. A correction band was added as the sealed text required.
G9 (the censoring coefficient) failed. The median of 1.602 is inside the sealed band, but the distribution is wider than expected — only 70.7% of 157 cells fell inside. As pre-committed, the route of converting past results to alpha without remeasuring is abandoned.
And two sealed consequences collided. “If the deciding prediction passes, publish on the new basis” and “if G3 fails, restore the old table’s numbers” fired together with opposite instructions.
The resolution: when a validated statistic is in hand, restoring an unvalidated one is wrong. The first was executed; from the second, only the correction band. The collision was not foreseen at sealing time because consequences were written per prediction, without considering combinations. They should be written per decision — what to publish, what to retract.
Evidence boundary
Supported: inside this synthetic model alpha reads 0 when stable and 1 when divergent, moves the boundary by at most 0.02 over an eightfold window extension, and is precise enough to quote with eight seeds. The table above is the measurement on that basis. EASY backfill converges even for a whole-pool class.
Not supported: the validity of the alpha = 0.5 line (a convention); any behaviour on a real trace. One load, one pool size, one service distribution, one background family. real_prospective_cycle_count remains 0.
UNKNOWN
- The sensitivity of the alpha = 0.5 line. Unsealed analysis puts it at ±0.04; it needs sealing and remeasurement.
- Which row of the table a real cluster falls on. The next study measures it.
- The U-shape of the frequency effect, and what the background family effect really is.
Falsification targets
- Adding a still longer window moves the boundary by more than 0.03.
- Moving the decision line reverses the ordering of conditions.
- The truncation from averaging completed jobs only is large enough to change alpha’s reading qualitatively.
Reproduce
python -m pip install -r requirements-reproduce.txt
python scripts/reproduce.py --quick gpu-boundaryFull rerun (about 57 minutes):
cd reproduction/gpu-scheduling-boundary
python run_e14.py
python analyze_e14.pyEvidence / Artifacts
- Public reproduction package
- Sealed PRED-013, including the two consequences that collided
- E14 grading
- Internal source Episode hash:
9f33d6cf645c7273f53984f13ce51ae2bc3b87aaba50ae1df822ed1756755ce6
External audit
- Independent replications: 0
- Failed replications: 0
- Bugs confirmed after publication: 0
- Open critiques: 0
Next experiment
Measure the real cluster’s frequency. The table splits the safe ratio between 0.92 and 0.72 across the 0.002 and 0.02 rows, so Philly’s 11cb48 currently has a margin anywhere from 0.13 to 0.33 — a factor of 2.5. Frequency is measurable from the trace and needs no new simulation.