Skip to main content

compose_phased

Function compose_phased 

Source
pub fn compose_phased(
    sections: Vec<SpatialProgram>,
    links: &[Link],
    state: &[String],
    placement: SectionPlacement,
    barrier_after: Option<&[bool]>,
    target: &SpatialTarget,
) -> Result<SpatialProgram, ComposeReject>
Expand description

compose with the barriers named: barrier_after[k] closes section k with a rendezvous, and a section left open runs CONCURRENTLY with the one after it — sections on disjoint chips with no data between them, a phase of a tensor-parallel step. None closes every section but the last.

★ ONE BARRIER ORDERS EVERYTHING ACROSS IT. A rendezvous after section b holds every op of every section after b until every op of every section up to b is done, so two sections are ordered by ANY barrier between them — which is what the certificate’s ordering obligations check — and a boundary with no data across it needs none.