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

ppopp-experiments

Use when designing or auditing a PPoPP paper's evaluation, covering the twin bar of concurrency correctness and measured scalability — speedup curve…

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

它会碰到什么

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

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

技能内容

PPoPP Experiments

Design the evaluation to clear PPoPP's twin bar: the contribution must be **correct under

concurrency and measurably scalable**. A speedup with no correctness argument, or a correctness

proof with no scaling data, each fails half the venue. Reviewers are parallel-systems experts who

will interrogate the baseline, the machine, and the variance before they believe a number.

Match evidence to the claim

| Claim shape | Evidence PPoPP expects | Common failure it catches |

|---|---|---|

| A lock-free/wait-free structure | Throughput vs. thread count under varied contention; a linearizability/progress argument; memory-reclamation overhead | Single contention level; "no race seen" instead of an argument |

| A parallel runtime/scheduler | Overhead vs. sequential; strong+weak scaling on real workloads; load-balance behavior | Microbenchmarks only; no real application |

| A GPU/accelerator technique | Speedup over a strong GPU baseline; occupancy/divergence analysis; transfer costs counted | Ignoring host-device transfer; a weak baseline kernel |

| A parallel algorithm | Scaling on real inputs; NUMA/locality effects; comparison to the best known implementation | One input; a naive baseline |

| A memory-model / race tool | Soundness/coverage claims; runtime overhead; false-positive/negative characterization | Overhead unmeasured; no ground truth |

The scalability story

  • Show the curve. Report performance as a function of thread/core count, not one configuration.

The interesting information is the shape: linear region, saturation point, collapse.

  • Distinguish strong vs. weak scaling and label which you show. Strong scaling (fixed problem,

more cores) and weak scaling (problem grows with cores) answer different questions; conflating

them is a classic PPoPP tell.

  • Sweep the topology. Cross-socket and NUMA effects, thread pinning, and (for GPUs) occupancy

and divergence often dominate; a single-socket-only result invites "what about NUMA?"

  • Count the hidden costs. Memory reclamation, host-device transfer, allocation, and scheduling

overhead belong inside the reported numbers, not in a footnote.

Correctness under concurrency

  • Provide an argument, not just testing: linearizability (with linearization points),

lock-freedom/wait-freedom (progress), or a checked property. "Passed a stress test" bounds

confidence but does not establish correctness.

  • Name the memory model you assume (C/C++11 atomics, the GPU model, hardware TSO) and show your

synchronization is correct under it, not just under sequential consistency.

  • If you use a model checker or race detector to support the claim, report its configuration and

what it covers.

Baselines that survive scrutiny

  • Compare to the strongest real competitor, at the competitor's best settings, on the same

machine — not to your own unoptimized code and not to a strawman.

  • Rebuild and re-tune baselines yourself where feasible; citing a competitor's paper number

measured on different hardware is not a fair comparison.

  • If you are the first at something, construct the most credible reasonable baseline and justify it.

Measurement hygiene

[Repeats]     multiple runs; report median/mean with variance (error bars / percentiles)
[Warm-up]     discard JIT/cache/allocator warm-up; state the steady-state protocol
[Pinning]     pin threads to cores; state the topology and the pinning policy
[Isolation]   quiescent machine; no co-tenants; disable turbo/frequency scaling or report it
[Inputs]      real workloads plus targeted microbenchmarks; state sizes and sources
[Provenance]  exact CPU/GPU, socket/NUMA layout, memory, compiler and flags, OS

A single-run bar chart with no error bars, on an unstated machine, is the evaluation a PPoPP

reviewer trusts least.

Anticipate the rebuttal questions at design time

The two questions PPoPP reviewers ask most — **"does it still scale at higher core counts / on

another GPU?" and "how does it compare to baseline X?"** — cannot be answered in the short

rebuttal window if the runs were never made. Pre-run the larger core sweep and the obvious

alternative baseline before submission so the numbers are already in hand (see

ppopp-author-response).

Output format

[Twin bar] correctness argument present? scalability curve present? both required
[Scaling] strong/weak labeled, core sweep, NUMA/GPU topology, hidden costs counted? yes/no
[Correctness] hazard + argument (linearizability/progress) under a named memory model? yes/no
[Baselines] strongest real competitor, same machine, tuned? yes/no
[Hygiene] repeats+variance, warm-up, pinning, isolation, provenance? list gaps
[Rebuttal pre-runs] higher core count + alternative baseline already measured? yes/no

想直接用这个技能?

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