Skip to content

DOPIPE

DOPIPE pipelines a regular loop by assigning dependence-respecting groups of loop-body statements to ordered parallel stages.

Version
v1 · 2026-10-03 · History
Domain-specific #
13166
Domain group
Applied Sciences & Engineering
Origin domain
Computer Science & Software Engineering
Subdomain
Parallelizing Compilers → Computer Science & Software Engineering
Aliases
DOPIPE parallelism, DOPIPE loop parallelization

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

Local relationship map for DOPIPEParents appear above the current abstraction, mutual partners to the right, and children below. Node labels state whether each abstraction is prime or domain-specific; colors identify relation types.DOPIPEDOMAINPrime abstraction: Pipeline — is a kind ofPipelinePRIME

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

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

Computed from structural-signature embeddings · 2026-10-08