pub struct DependencyAnalysis {
pub predecessors: HashMap<OperatorId, HashSet<OperatorId>>,
pub successors: HashMap<OperatorId, HashSet<OperatorId>>,
pub sources: Vec<OperatorId>,
pub sinks: Vec<OperatorId>,
pub critical_path_length: usize,
pub critical_path: Vec<OperatorId>,
}Expand description
Dependency analysis for a dataflow graph
Fields§
§predecessors: HashMap<OperatorId, HashSet<OperatorId>>Predecessors of each operator (operators that must complete first)
successors: HashMap<OperatorId, HashSet<OperatorId>>Successors of each operator (operators that depend on this one)
sources: Vec<OperatorId>Operators with no predecessors (can start immediately)
sinks: Vec<OperatorId>Operators with no successors (final outputs)
critical_path_length: usizeCritical path length
critical_path: Vec<OperatorId>Operators on the critical path
Implementations§
Source§impl DependencyAnalysis
impl DependencyAnalysis
Sourcepub fn analyze(dfg: &DataflowGraph) -> Self
pub fn analyze(dfg: &DataflowGraph) -> Self
Analyze dependencies in a dataflow graph
Sourcepub fn parallelism_profile(&self, _dfg: &DataflowGraph) -> Vec<usize>
pub fn parallelism_profile(&self, _dfg: &DataflowGraph) -> Vec<usize>
Get maximum available parallelism at each level
Trait Implementations§
Auto Trait Implementations§
impl Freeze for DependencyAnalysis
impl RefUnwindSafe for DependencyAnalysis
impl Send for DependencyAnalysis
impl Sync for DependencyAnalysis
impl Unpin for DependencyAnalysis
impl UnwindSafe for DependencyAnalysis
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more