tile
Safe HaskellNone
LanguageGHC2024

Tile.Routing

Description

Routing turns a tiling-derived send tree into an ordered schedule. The traversal policy determines the order in which tree edges are emitted as communication steps.

Synopsis

Traversal policies

data Traversal Source #

Tree traversal order used when emitting schedule steps.

Constructors

DFS 
BFS 

Instances

Instances details
Eq Traversal Source # 
Instance details

Defined in Tile.Routing

Show Traversal Source # 
Instance details

Defined in Tile.Routing

Schedule construction

buildScheduleFrom :: Tiling t => Traversal -> t -> [a] -> Tile -> Schedule a Source #

Build a fault-free schedule from an explicit start tile.

The tiling determines the send tree. The traversal determines the order in which parent-child edges become Steps.

buildSchedule :: Tiling t => Traversal -> t -> [a] -> Shape -> Schedule a Source #

Build a fault-free schedule from a root row-major shape.

buildOccludedScheduleFrom :: (Tiling t, Eq a) => Traversal -> Occlusion a -> t -> [a] -> Tile -> Maybe (RoutedSchedule a) Source #

Build a schedule while avoiding occluded members.

Subtrees with no live representative are pruned. Surviving tile edges are routed through their live representatives.