DOPIPE¶
DOPIPE pipelines a regular loop by assigning dependence-respecting groups of loop-body statements to ordered parallel stages.
Core Idea¶
DOPIPE parallelizes a regular loop by splitting its body statements into ordered stages. Each stage handles its portion across iterations, sending needed values forward. The arrangement lets stages work on different iterations concurrently while keeping dependence cycles within a stage.[ref-0a4c7dcdb0ca][ref-6aa5be0067ae]
Scope of Application¶
It was developed for counted scientific loops with regular dependence patterns. In an author-constructed three-iteration example, s=s+a[i] for a=[1,2,3] produces ordered snapshots 1,3,6; a second stage receives those snapshots and computes b[i]=2s_i, giving [2,6,12]. Stage 1 can execute A_1 while stage 2 executes B_0; this is an idealized overlap, not a measured speedup. Generic streaming pipelines and broader decoupled software pipelining are related but not automatically DOPIPE.[ref-0a4c7dcdb0ca][ref-6aa5be0067ae]
Clarity¶
DOALL distributes independent iterations; DOACROSS synchronizes dependent whole iterations; DOPIPE distributes statement groups. A proposed stage split is legal only if cross-stage dependences can flow forward. If one stage computes t=state+1 and a later stage computes out[i]=t+c[i]; state=out[i], then next iteration's t depends backward on the later stage. That proposed forward-only split is invalid; regrouping may preserve correctness but remove overlap.[^ref-6aa5be0067ae]
Manages Complexity¶
Grouping dependent statements into stages makes overlap possible without ignoring loop-carried order. It can reduce repeated communication on the critical path, but an unbalanced stage or transfer cost can erase speedup.
Abstract Reasoning¶
Build the statement-dependence graph, keep cycles local, order the stage groups, synchronize each forward transfer, and verify preserved results. Then estimate slowest-stage work, pipeline fill and communication.
Knowledge Transfer¶
The forward-stage principle appears in broader pipelines. DOPIPE's regular-loop scope and exact dependence constraints do not transfer automatically to every staged computation.
[^ref-0a4c7dcdb0ca]: Original Princeton compiler research thesis, chapter 6. [^ref-6aa5be0067ae]: Original Cambridge parallelism research thesis, §2.3.
Relationships to Other Abstractions¶
Current abstraction DOPIPE Domain-specific
Parents (1) — more general patterns this builds on
-
DOPIPE is a kind of Pipeline Prime
DOPIPE is a specialized execution pipeline that divides regular-loop statements into ordered stages with forward interstage flow.
Hierarchy paths (3) — routes to 2 parentless roots
- DOPIPE → Pipeline → Decomposition
- DOPIPE → Pipeline → Iteration
- DOPIPE → Pipeline → Modularity → Decomposition
Neighborhood in Abstraction Space¶
DOPIPE sits in a sparse region of the domain-specific corpus (94th percentile for distinctiveness): few abstractions share its structure, so a faithful description tends to retrieve it precisely.
Family — Unclustered & Miscellaneous (2551 abstractions)
Nearest neighbors
- Automatic parallelization — 0.83
- Array-access analysis — 0.78
- Polyhedral Model — 0.78
- Floyd's Cycle-Finding Algorithm — 0.77
- Automatic Differentiation — 0.77
Computed from structural-signature embeddings · 2026-10-08