跳到主要内容
知仓学习社ZHICANG

pldi-reproducibility

Use when hardening a PLDI paper's measurements against the SIGPLAN Empirical Evaluation Guidelines — warmup and steady-state discipline, variance an…

不碰外部(只输出文字)无严重或高危命中brycewang-stanford/Awesome-Journal-Skills

它会碰到什么

扫了多少1 个文本文件,4 KB
它会碰到什么不碰外部(只输出文字)
命中总数0 处
命中统计严重 0 · 高 0 · 中 0 · 低 0

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

PLDI Reproducibility

PLDI's methodological yardstick is written down: the SIGPLAN Empirical Evaluation

Guidelines and their one-page checklist (Blackburn, Hauswirth, Berger, Hicks,

Krishnamurthi, 2018; sigplan.org/Resources/EmpiricalEvaluation/, read 2026-07-08).

Reviewers and artifact evaluators both reach for it. This skill turns the

checklist into compiler-bench practice; pldi-experiments covers what to measure,

this covers whether anyone can trust and repeat the measurement.

Checklist, translated to PL systems

| Guideline item | What it means for a compiler/runtime paper |

|---|---|

| Clearly stated claims | "1.17x geomean on suite S vs baseline B at -O2" — never "significant speedups" |

| Suitable comparison | The strongest sensible baseline configuration, tuned as its authors intend |

| Principled benchmark choice | The suite is justified; exclusions are listed with reasons, not silently dropped |

| Adequate data analysis | Repetitions, variance, and an aggregation rule (geomean for ratios) stated in the paper |

The measurement sins PLDI reviewers hunt

  • No warmup discipline. JIT-compiled and cache-sensitive workloads need

documented warmup iterations before timed runs; AOT binaries still need

file-cache and frequency-scaling control. Say which regime you measured —

steady-state and cold-start are different claims.

  • Single-run numbers. Report repetitions (dozens, not three), dispersion

(confidence intervals or at least min/max), and never present a 2% delta

inside the noise band as an improvement.

  • One machine, universal claim. A locality optimization can invert between

microarchitectures. Two platforms with differing cache hierarchies is the

floor for a general performance claim; otherwise scope the claim to the

measured machine.

  • Unpinned toolchains. "GCC" is not a baseline; "GCC 14.2, -O2, glibc 2.39,

Ubuntu 24.04, governor=performance" is.

  • Benchmark survivorship. Excluding the programs your technique fails on,

without saying so, is the most damaging silent choice in a PL evaluation.

A protocol worth writing down

Keep the protocol in the repository, executed by machine, so paper and artifact

cannot diverge:

# protocol.sh — executed, not described
set -euo pipefail
lscpu > results/env/cpu.txt; uname -a > results/env/os.txt
cc --version > results/env/toolchain.txt
for b in $(cat benchmarks/suite.list); do
  for i in $(seq 1 5);  do ./run.sh "$b" >/dev/null; done      # warmup
  for i in $(seq 1 30); do ./run.sh "$b" >> "results/raw/$b.csv"; done
done
python3 scripts/aggregate.py --stat geomean --ci 95 results/raw/

Log the environment beside the numbers: CPU model, frequency-scaling governor,

ASLR setting, load conditions. When a reviewer's rerun differs from yours, the

environment log is what turns a dispute into a diagnosis.

Compile-time and memory are claims too

If the paper claims low compile-time overhead or memory neutrality, those numbers

need the same repetitions-and-variance treatment as speedups. A "under 3%

overhead" sentence backed by one timed build is the soft spot response-phase

reviewers press hardest.

Tie-in to badges

Everything above lands in the artifact (pldi-artifact-evaluation): the executed

protocol becomes reproduce_all.sh, the environment log becomes results/env/,

and the suite-choice justification becomes benchmarks/README. Reproducibility

retrofitted after acceptance always shows.

Output format

[Guidelines pass] claims / comparison / benchmark choice / analysis — each ok?
[Warmup regime] documented? steady-state vs cold-start stated?
[Variance] runs per data point, CI method, noise floor vs claimed delta
[Platforms] n machines; claim scoped accordingly?
[Pinning + log] toolchain versions, flags, environment captured in repo?

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。