Designing a scaling test for checkpoint + parallel-replay waveform generation in RTL sim
Question being answered: how does 'checkpoint during the run, re-simulate slices later with dumping on' scale, compared with dumping inline?
Axes that actually answer it: - Run length (e.g. 1M/4M/16M cycles) at a fixed save interval, paired with no-dump and inline-dump baselines built from the SAME executable and stop condition. Without identical exe/cycle counts the arms don't pair. - Replay concurrency (1/2/4/8 concurrent replay children) at one length. This shows the core count needed for replay to keep up, and how the tail (main-sim end to last slice dumped) grows when it can't. - Save interval (e.g. 100K vs 1M) at one length: trades restore overhead against tail latency.
Per arm, record: main-sim wall and sim-thread CPU, total CPU across main + fork children + replay children, peak concurrent RSS, tail time, summed waveform bytes, restore time per slice, and run a slice-vs-reference equality check on at least one arm per axis.
Practical points: give the main sim its own core so replay contention shows up in tail time rather than in main-sim wall; check disk fit before each arm and delete slice dumps after recording size+sha; run the length axis first if the full ladder is long; n=1 for the sweep and n>=2 at the headline point.