ISCA Reproducibility
In architecture, "reproducible" means someone else — or you, three months later,
mid-rebuttal — can regenerate every reported number from recorded state. Because
most ISCA numbers come out of simulators, reproducibility here is largely
configuration archaeology: the result is a function of tool commit, local
patches, model parameters, workload build, region selection, and warm-up policy,
and losing any one of those breaks the chain. The venue reinforces this culture
with post-acceptance artifact evaluation under ACM badging
(isca-artifact-evaluation); this skill covers the discipline that must exist
before any AE form is filled.
The result chain, and what to pin at each link
| Link |
What drifts silently |
Pin it by |
| Simulator |
Version-to-version behavior changes; forgotten local edits |
Exact commit hash + git diff of local patches archived with results |
| Machine model |
Config files edited during exploration |
One immutable config per experiment family; configs referenced by hash |
| Workloads |
Compiler/flags/inputs change binaries |
Archive binaries or lockfile the build; record input sets by checksum |
| Regions & warm-up |
Re-generated sampling points differ |
Store the region/checkpoint files themselves, plus the generator seed |
| Post-processing |
"Quick" notebook edits change aggregation |
Scripted stats path from raw output to figure, in the repo |
| Real-hardware runs |
Frequency scaling, thermal state, background load |
Record governor, SMT/turbo state, kernel; report dispersion over trials |
One manifest per published number
Adopt the rule that every figure and table in the paper has a manifest and a
regeneration command. This is the same manifest format isca-experiments
specifies for methodology writing — one artifact serves both purposes.
results/
f07-headline/
manifest.ini # instrument, model, measurement, workloads
regen.sh # rebuild -> run -> aggregate -> plot, no hands
raw/ # simulator stats as emitted (never edited)
derived/f07.csv # scripted aggregation output
f07.pdf # exactly the file included in the paper
# The submission-freeze ritual:
git tag isca27-submitted && \
sha256sum results/*/f*.pdf paper/fig/*.pdf | sort | uniq -c -w64 | \
awk '$1!=2 {print "FIGURE MISMATCH:", $0}' # every paper figure must
# hash-match a regenerated one
The freeze ritual catches the classic disaster: a figure in the PDF produced by
a config that no longer exists because exploration continued after the plot was
made.
Nondeterminism gets measured, not ignored
- Deterministic simulators: verify determinism once (same commit + config +
workload → bit-identical stats) and record that check; if a threading mode
breaks it, either use the deterministic mode for reported numbers or report
dispersion.
- Real hardware: never a single trial. Report median and spread across ≥5
runs, with the machine-state record (governor, turbo, SMT, kernel, isolation
measures). Reviewers increasingly ask; artifact evaluators always do.
- Sampled simulation: the sampling procedure and seed are part of the
result. Different SimPoint runs are different experiments — archive the chosen
regions, don't regenerate them.
Paper-side reporting
The paper must let a skeptical reader reconstruct the setup without the
artifact: a full configuration table (structures, sizes, latencies, DRAM
timing), the workload list with inputs and build flags summarized, the region/
warm-up policy, and a variability statement wherever hardware was measured. Under
double-blind rules the repository link, if given, must be fully anonymized
(verified 2026 rule — see isca-submission); the common pattern is an
anonymized-mirror link at submission, replaced by the real archival link in the
camera-ready.
Resurrectability: the February requirement
The 2026 cycle's rebuttal/revision window (Feb 16 - Mar 6) arrived three months
after submission. Teams whose environment had rotted — simulator tree no longer
building, cluster images recycled, workload binaries lost — entered the window
unable to run the experiments that would have saved the paper. Protocol:
- At submission: container or environment image built and stored;
regen.sh
for at least the headline figure verified from the image, not from a dev
machine.
- Window-open minus one week (early February): resurrection drill — boot the
image, regenerate one figure end to end, confirm hash match.
- Keep one team member's environment untouched between November and March; do
not upgrade the shared toolchain mid-wait.
Habits that make all of this cheap
- Results directories are append-only; a changed config is a new experiment
ID, never an edit in place.
- The plotting path takes experiment IDs, not file paths typed by hand.
- A
METHODS.md in the repo grows in real time — every methodological choice
(why these regions, why this warm-up, why this DRAM model) written down when
made, because November-you will not remember July-you's reasoning.
- Weekly:
regen.sh for the current headline figure runs green in CI or by
hand. Regeneration that only works on deadline eve doesn't work.
Pre-submission reproducibility gate
Where each practice pays off later
| Practice |
Pays off at... |
Per-figure manifests + regen.sh |
Methodology section writing, rebuttal experiments, AE claims table |
| Submission-tag freeze ritual |
Camera-ready number verification, artifact snapshot selection |
| Environment image + drill |
The February window's first 48 hours |
| Hardware-state records |
Reviewer variance questions, Functional-badge documentation |
METHODS.md running log |
Every "why did we choose X" question from reviewers and evaluators |
Venue facts (AE program, badging, double-blind link rule) verified 2026-07-08 in
../../resources/official-source-map.md; the engineering protocol above is
community best practice, applicable regardless of cycle.
Source: brycewang-stanford/Awesome-Journal-Skills → ISCA-Skills/skills/isca-reproducibility/SKILL.md
1---2name: isca-reproducibility3description: Use when making an ISCA paper's results regenerable — pinning simulator versions and local patches, archiving per-figure configuration manifests, recording workload provenance and sampling seeds, quantifying run-to-run variation on real hardware, and keeping the environment resurrectable through the February window.4---567# ISCA Reproducibility89In architecture, "reproducible" means someone else — or you, three months later,10mid-rebuttal — can regenerate every reported number from recorded state. Because11most ISCA numbers come out of simulators, reproducibility here is largely12*configuration archaeology*: the result is a function of tool commit, local13patches, model parameters, workload build, region selection, and warm-up policy,14and losing any one of those breaks the chain. The venue reinforces this culture15with post-acceptance artifact evaluation under ACM badging16(`isca-artifact-evaluation`); this skill covers the discipline that must exist17*before* any AE form is filled.1819## The result chain, and what to pin at each link2021| Link | What drifts silently | Pin it by |22|---|---|---|23| Simulator | Version-to-version behavior changes; forgotten local edits | Exact commit hash + `git diff` of local patches archived with results |24| Machine model | Config files edited during exploration | One immutable config per experiment family; configs referenced by hash |25| Workloads | Compiler/flags/inputs change binaries | Archive binaries or lockfile the build; record input sets by checksum |26| Regions & warm-up | Re-generated sampling points differ | Store the region/checkpoint files themselves, plus the generator seed |27| Post-processing | "Quick" notebook edits change aggregation | Scripted stats path from raw output to figure, in the repo |28| Real-hardware runs | Frequency scaling, thermal state, background load | Record governor, SMT/turbo state, kernel; report dispersion over trials |2930## One manifest per published number3132Adopt the rule that every figure and table in the paper has a manifest and a33regeneration command. This is the same manifest format `isca-experiments`34specifies for methodology writing — one artifact serves both purposes.3536```bash37results/38 f07-headline/39 manifest.ini # instrument, model, measurement, workloads40 regen.sh # rebuild -> run -> aggregate -> plot, no hands41 raw/ # simulator stats as emitted (never edited)42 derived/f07.csv # scripted aggregation output43 f07.pdf # exactly the file included in the paper44# The submission-freeze ritual:45git tag isca27-submitted && \46 sha256sum results/*/f*.pdf paper/fig/*.pdf | sort | uniq -c -w64 | \47 awk '$1!=2 {print "FIGURE MISMATCH:", $0}' # every paper figure must48 # hash-match a regenerated one49```5051The freeze ritual catches the classic disaster: a figure in the PDF produced by52a config that no longer exists because exploration continued after the plot was53made.5455## Nondeterminism gets measured, not ignored5657- **Deterministic simulators:** verify determinism once (same commit + config +58 workload → bit-identical stats) and record that check; if a threading mode59 breaks it, either use the deterministic mode for reported numbers or report60 dispersion.61- **Real hardware:** never a single trial. Report median and spread across ≥562 runs, with the machine-state record (governor, turbo, SMT, kernel, isolation63 measures). Reviewers increasingly ask; artifact evaluators always do.64- **Sampled simulation:** the sampling procedure and seed are part of the65 result. Different SimPoint runs are different experiments — archive the chosen66 regions, don't regenerate them.6768## Paper-side reporting6970The paper must let a skeptical reader reconstruct the setup without the71artifact: a full configuration table (structures, sizes, latencies, DRAM72timing), the workload list with inputs and build flags summarized, the region/73warm-up policy, and a variability statement wherever hardware was measured. Under74double-blind rules the repository link, if given, must be fully anonymized75(verified 2026 rule — see `isca-submission`); the common pattern is an76anonymized-mirror link at submission, replaced by the real archival link in the77camera-ready.7879## Resurrectability: the February requirement8081The 2026 cycle's rebuttal/revision window (Feb 16 - Mar 6) arrived three months82after submission. Teams whose environment had rotted — simulator tree no longer83building, cluster images recycled, workload binaries lost — entered the window84unable to run the experiments that would have saved the paper. Protocol:85861. At submission: container or environment image built and stored; `regen.sh`87 for at least the headline figure verified *from the image*, not from a dev88 machine.892. Window-open minus one week (early February): resurrection drill — boot the90 image, regenerate one figure end to end, confirm hash match.913. Keep one team member's environment untouched between November and March; do92 not upgrade the shared toolchain mid-wait.9394## Habits that make all of this cheap9596- Results directories are append-only; a changed config is a *new* experiment97 ID, never an edit in place.98- The plotting path takes experiment IDs, not file paths typed by hand.99- A `METHODS.md` in the repo grows in real time — every methodological choice100 (why these regions, why this warm-up, why this DRAM model) written down when101 made, because November-you will not remember July-you's reasoning.102- Weekly: `regen.sh` for the current headline figure runs green in CI or by103 hand. Regeneration that only works on deadline eve doesn't work.104105## Pre-submission reproducibility gate106107- [ ] Every paper figure hash-matches a scripted regeneration108- [ ] Simulator commit + local patch diff archived alongside results109- [ ] Workload binaries/inputs archived or deterministically rebuildable110- [ ] Region/checkpoint files stored; sampling seeds recorded111- [ ] Hardware numbers carry trial counts and dispersion112- [ ] Environment image built, stored, and drill-tested113- [ ] Anonymized artifact link (if any) resolves and contains no identity114115## Where each practice pays off later116117| Practice | Pays off at... |118|---|---|119| Per-figure manifests + `regen.sh` | Methodology section writing, rebuttal experiments, AE claims table |120| Submission-tag freeze ritual | Camera-ready number verification, artifact snapshot selection |121| Environment image + drill | The February window's first 48 hours |122| Hardware-state records | Reviewer variance questions, Functional-badge documentation |123| `METHODS.md` running log | Every "why did we choose X" question from reviewers and evaluators |124125Venue facts (AE program, badging, double-blind link rule) verified 2026-07-08 in126`../../resources/official-source-map.md`; the engineering protocol above is127community best practice, applicable regardless of cycle.128129---130131**Source:** [`brycewang-stanford/Awesome-Journal-Skills`](https://github.com/brycewang-stanford/Awesome-Journal-Skills) → `ISCA-Skills/skills/isca-reproducibility/SKILL.md`