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.
Source: brycewang-stanford/Awesome-Journal-Skills → PPoPP-Skills/skills/ppopp-topic-selection/SKILL.md
1---2name: ppopp-topic-selection3description: 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).4---567# PPoPP Topic Selection89Decide the venue before drafting. PPoPP — the ACM SIGPLAN Symposium on Principles and Practice of10Parallel Programming — is the premier forum for work whose **center of gravity is parallelism and11concurrency**: parallel languages, compilers, and runtimes; lock-free/wait-free data structures;12GPU/accelerator and NUMA performance; parallel algorithms; and scalability studies. A technically13strong paper whose real contribution is a compiler pass, a program logic, or a cache design is14respected here and then rejected as out of scope. The question PPoPP reviewers ask first is: **is15the parallelism the point, or is it the setting?**1617## The routing question that matters most1819PPoPP sits inside the co-located **HPCA/CGO/PPoPP/CC** week, so its nearest neighbors are one20hallway away and the boundary is real. Use the "is the parallelism the point?" test: if you removed21the concurrency/parallel-performance story, is there still a paper? If yes, the contribution lives22elsewhere.2324## Sibling-venue routing table2526| Signal in your project | Better home | Why |27|---|---|---|28| 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 |29| 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 |30| The contribution is a **new program logic, type system, or semantics** for concurrency | **POPL** | Foundational concurrency *theory* over a measured parallel system |31| The contribution is **hardware/microarchitecture** (coherence, memory system, accelerator design) | **ASPLOS / HPCA** | The result is about the machine, not the parallel program |32| 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 |33| The core is a **theoretical parallel-algorithm** bound with no implementation | **SPAA** | Theory of parallelism; PPoPP wants practice alongside principle |34| A concurrency feature of a managed language / object system | **OOPSLA / PLDI** | Language-design framing dominates |3536## Contribution shapes PPoPP rewards3738- **Concurrent data structures** — a new lock-free/wait-free structure or synchronization primitive39 with a correctness argument (linearizability, progress) *and* throughput/scalability under40 contention.41- **Parallel runtimes and schedulers** — work-stealing, task graphs, futures, load balancing, with42 measured overhead and scaling on real workloads.43- **GPU / accelerator programming** — techniques, languages, or libraries that raise occupancy,44 reduce divergence, or exploit heterogeneity, with speedups over strong GPU baselines.45- **Parallel algorithms in practice** — graph, numerical, or sparse kernels whose parallel design46 and NUMA/locality engineering deliver a measured win.47- **Memory-model and concurrency-correctness work** — race/linearizability checking, weak-memory48 reasoning, or verified concurrency, positioned as a parallel-programming enabler.49- **Compilers/languages *for parallelism*** — DSLs, parallel IRs, and runtime-coupled compilation50 where the parallel-execution lesson (not a generic pass) is the contribution.5152## The remove-the-parallelism and swap-the-machine tests5354Two quick tests sharpen a borderline verdict:5556- **Remove-the-parallelism test:** delete the concurrency and the scaling story. If a contribution57 remains (a better pass, a cleaner semantics, a faster core), route to CGO/PLDI/POPL/ASPLOS.58- **Swap-the-machine test:** if your result is a single-configuration speedup that would vanish or59 reverse on another core count, socket topology, or GPU generation, it is a microbenchmark, not a60 parallel-programming contribution — PPoPP wants a lesson that survives the sweep.6162## Evidence maturity, without the cliché6364Fit is necessary but not sufficient. A synchronization idea shown only at one thread count is a65workshop poster; a runtime evaluated only on microbenchmarks needs real workloads before the66research track; a scalability claim with no baseline is not yet a paper. PPoPP's twin bar —67**correct under concurrency and measurably scalable** — is what promotes an idea from "interesting"68to "PPoPP-shaped."6970## Cheap reconnaissance before committing7172```text73[Scope] scan the last two PPoPP programs (dblp, conf.researchr.org) for your subarea74 -> 3+ recent papers = a reviewer pool exists; 0 = mismatch or a CGO/ASPLOS home75[Citations] is your bibliography majority PPoPP/PLDI/ASPLOS/SC/SPAA parallel venues?76 -> majority elsewhere => reviewers read you as a visitor; reframe the intro77[Calendar] PPoPP's summer deadline vs CGO/PLDI/ASPLOS/SC dates (same co-located family)78 -> route to the nearest honest fit; a marginal preference rarely justifies a year79```8081## Decision procedure8283```text84[Point test] remove the parallelism -> is there still a contribution? yes => reroute85[Claim type] concurrent structure / runtime / GPU / parallel algorithm / memory-model / parallel-language86[PPoPP vs CGO/PLDI] is a compiler pass the real result? -> CGO/PLDI87[PPoPP vs POPL] is it concurrency theory with no measured system? -> POPL88[PPoPP vs ASPLOS/HPCA] is it about the machine? -> ASPLOS/HPCA89[Verdict] PPoPP research track / sibling venue, with a one-line reason90```9192Run this before the writing skills; a wrong venue decision wastes every later step. When the93verdict is PPoPP, continue with `ppopp-workflow` for the calendar and `ppopp-writing-style` for the94paper shape.9596---9798**Source:** [`brycewang-stanford/Awesome-Journal-Skills`](https://github.com/brycewang-stanford/Awesome-Journal-Skills) → `PPoPP-Skills/skills/ppopp-topic-selection/SKILL.md`