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).
Scanned 9/5/2026
Install to Claude Code
npx -y skills add brycewang-stanford/Awesome-Journal-Skills --skill ppopp-topic-selection --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Ppopp Topic Selection?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/brycewang-stanford-ppopp-topic-selection)More formats (shields.io, HTML) on the badges page.
---
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
```text
[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
```text
[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.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!