You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The whole matrix instead of one cell. Roughly ten thousand runs over about eight days on the large host, which means the interesting engineering here is not throughput, it is what happens when something goes wrong on day six.
Scope
cache-bench doctor, checking cores, the core split, memtier and its version, the PMU, perf_event_paranoid, free memory against the profile's limit, the projected working set against that limit, and the load average. It refuses a profile the host cannot honestly run rather than warning and continuing.
cache-bench sweep, iterating prog then threads then pipeline then perf then run, in that order, matching the original so a partial results directory stays comparable, and so all 31 runs of a cell happen together in time and a disturbance shows up as one bad cell instead of smeared across all of them.
Restartable by file existence, and a result file that does not parse is re-run rather than accepted. Silently trusting a truncated file is the failure mode that costs a whole sweep.
A lock file per results directory. One session at a time against one clone.
results/logs/sweep.jsonl, one object per run, with the load average recorded before each one so a noisy window can be found afterwards rather than guessed at.
results/failures.json as a first class output. A cell that failed is absent with a footnote, never zero, because a zero on a chart is a claim and an absence is not.
An ETA, derived once there are enough completed runs to derive one rather than from an estimate scaled off somebody else's silicon.
Exit, and it is a gate
A smoke sweep of every engine at one pipeline depth and two thread counts completes unattended, killing it halfway and restarting it loses no completed work and repeats no completed run, and the failure file is empty or every entry in it is understood.
The whole matrix instead of one cell. Roughly ten thousand runs over about eight days on the large host, which means the interesting engineering here is not throughput, it is what happens when something goes wrong on day six.
Scope
cache-bench doctor, checking cores, the core split, memtier and its version, the PMU,perf_event_paranoid, free memory against the profile's limit, the projected working set against that limit, and the load average. It refuses a profile the host cannot honestly run rather than warning and continuing.cache-bench sweep, iterating prog then threads then pipeline then perf then run, in that order, matching the original so a partial results directory stays comparable, and so all 31 runs of a cell happen together in time and a disturbance shows up as one bad cell instead of smeared across all of them.results/logs/sweep.jsonl, one object per run, with the load average recorded before each one so a noisy window can be found afterwards rather than guessed at.results/failures.jsonas a first class output. A cell that failed is absent with a footnote, never zero, because a zero on a chart is a claim and an absence is not.Exit, and it is a gate
A smoke sweep of every engine at one pipeline depth and two thread counts completes unattended, killing it halfway and restarting it loses no completed work and repeats no completed run, and the failure file is empty or every entry in it is understood.