ppopp-topic-selection
GitHub辅助判断并行计算项目是否适合PPoPP会议。通过评估核心贡献是否为并行性本身,区分于编译器、并发逻辑或微架构研究,并推荐CGO、POPL等更合适的替代 venue。
Trigger Scenarios
Install
npx skills add brycewang-stanford/Awesome-Journal-Skills --skill ppopp-topic-selection -g -y
SKILL.md
Frontmatter
{
"name": "ppopp-topic-selection",
"description": "Use when deciding whether a parallel\/concurrent-computing project belongs at PPoPP or should be routed to PLDI, CGO, POPL, ASPLOS, HPCA, SC, SPAA, or OOPSLA, and when distinguishing PPoPP's \"the parallelism is the point\" scope from a compiler contribution (CGO\/PLDI), a concurrency logic (POPL), or a microarchitecture result (ASPLOS\/HPCA)."
}
PPoPP Topic Selection
Decide the venue before drafting. PPoPP — the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming — is the premier forum for work whose center of gravity is parallelism and concurrency: parallel languages, compilers, and runtimes; lock-free/wait-free data structures; GPU/accelerator and NUMA performance; parallel algorithms; and scalability studies. A technically strong paper whose real contribution is a compiler pass, a program logic, or a cache design is respected here and then rejected as out of scope. The question PPoPP reviewers ask first is: is the parallelism the point, or is it the setting?
The routing question that matters most
PPoPP sits inside the co-located HPCA/CGO/PPoPP/CC week, so its nearest neighbors are one hallway away and the boundary is real. Use the "is the parallelism the point?" test: if you removed the concurrency/parallel-performance story, is there still a paper? If yes, the contribution lives elsewhere.
Sibling-venue routing table
| Signal in your project | Better home | Why |
|---|---|---|
| The contribution is a parallel algorithm, runtime, synchronization mechanism, or a concurrency-correctness + scalability result | PPoPP | This is PPoPP's center; both correctness and speedup are judged |
| The contribution is a compiler optimization or code-generation technique | CGO (or PLDI) | Backend/optimization is CGO's named center; PLDI for broader PL implementation |
| The contribution is a new program logic, type system, or semantics for concurrency | POPL | Foundational concurrency theory over a measured parallel system |
| The contribution is hardware/microarchitecture (coherence, memory system, accelerator design) | ASPLOS / HPCA | The result is about the machine, not the parallel program |
| The core is a large-scale HPC application or systems-at-scale deployment | SC / ICS / IPDPS | Application/HPC-systems framing over a general parallel-programming lesson |
| The core is a theoretical parallel-algorithm bound with no implementation | SPAA | Theory of parallelism; PPoPP wants practice alongside principle |
| A concurrency feature of a managed language / object system | OOPSLA / PLDI | Language-design framing dominates |
Contribution shapes PPoPP rewards
- Concurrent data structures — a new lock-free/wait-free structure or synchronization primitive with a correctness argument (linearizability, progress) and throughput/scalability under contention.
- Parallel runtimes and schedulers — work-stealing, task graphs, futures, load balancing, with measured overhead and scaling on real workloads.
- GPU / accelerator programming — techniques, languages, or libraries that raise occupancy, reduce divergence, or exploit heterogeneity, with speedups over strong GPU baselines.
- Parallel algorithms in practice — graph, numerical, or sparse kernels whose parallel design and NUMA/locality engineering deliver a measured win.
- Memory-model and concurrency-correctness work — race/linearizability checking, weak-memory reasoning, or verified concurrency, positioned as a parallel-programming enabler.
- Compilers/languages for parallelism — DSLs, parallel IRs, and runtime-coupled compilation where the parallel-execution lesson (not a generic pass) is the contribution.
The remove-the-parallelism and swap-the-machine tests
Two quick tests sharpen a borderline verdict:
- Remove-the-parallelism test: delete the concurrency and the scaling story. If a contribution remains (a better pass, a cleaner semantics, a faster core), route to CGO/PLDI/POPL/ASPLOS.
- Swap-the-machine test: if your result is a single-configuration speedup that would vanish or reverse on another core count, socket topology, or GPU generation, it is a microbenchmark, not a parallel-programming contribution — PPoPP wants a lesson that survives the sweep.
Evidence maturity, without the cliché
Fit is necessary but not sufficient. A synchronization idea shown only at one thread count is a workshop poster; a runtime evaluated only on microbenchmarks needs real workloads before the research track; a scalability claim with no baseline is not yet a paper. PPoPP's twin bar — correct under concurrency and measurably scalable — is what promotes an idea from "interesting" to "PPoPP-shaped."
Cheap reconnaissance before committing
[Scope] scan the last two PPoPP programs (dblp, conf.researchr.org) for your subarea
-> 3+ recent papers = a reviewer pool exists; 0 = mismatch or a CGO/ASPLOS home
[Citations] is your bibliography majority PPoPP/PLDI/ASPLOS/SC/SPAA parallel venues?
-> majority elsewhere => reviewers read you as a visitor; reframe the intro
[Calendar] PPoPP's summer deadline vs CGO/PLDI/ASPLOS/SC dates (same co-located family)
-> route to the nearest honest fit; a marginal preference rarely justifies a year
Decision procedure
[Point test] remove the parallelism -> is there still a contribution? yes => reroute
[Claim type] concurrent structure / runtime / GPU / parallel algorithm / memory-model / parallel-language
[PPoPP vs CGO/PLDI] is a compiler pass the real result? -> CGO/PLDI
[PPoPP vs POPL] is it concurrency theory with no measured system? -> POPL
[PPoPP vs ASPLOS/HPCA] is it about the machine? -> ASPLOS/HPCA
[Verdict] PPoPP research track / sibling venue, with a one-line reason
Run this before the writing skills; a wrong venue decision wastes every later step. When the
verdict is PPoPP, continue with ppopp-workflow for the calendar and ppopp-writing-style for the
paper shape.
Version History
- 9f86f09 Current 2026-07-19 17:18


