pub struct ParallelExecutor { /* private fields */ }Expand description
Parallel executor that identifies independent nodes and executes them concurrently
Implementations§
Source§impl ParallelExecutor
impl ParallelExecutor
Sourcepub fn new(config: ParallelConfig) -> Self
pub fn new(config: ParallelConfig) -> Self
Create a new parallel executor
Sourcepub fn register_node(&mut self, node: Box<dyn Node>)
pub fn register_node(&mut self, node: Box<dyn Node>)
Register a node with the executor
Sourcepub fn identify_layers(&self, def: &GraphDef) -> Result<Vec<ExecutionLayer>>
pub fn identify_layers(&self, def: &GraphDef) -> Result<Vec<ExecutionLayer>>
Analyze graph and identify execution layers Nodes in the same layer have no dependencies on each other and can run in parallel
Sourcepub async fn execute(&self, graph: &mut Graph) -> Result<()>
pub async fn execute(&self, graph: &mut Graph) -> Result<()>
Execute the entire graph with parallel execution per layer
Sourcepub fn get_parallelism_stats(&self, def: &GraphDef) -> Result<ParallelismStats>
pub fn get_parallelism_stats(&self, def: &GraphDef) -> Result<ParallelismStats>
Get parallel execution statistics
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ParallelExecutor
impl !RefUnwindSafe for ParallelExecutor
impl Send for ParallelExecutor
impl Sync for ParallelExecutor
impl Unpin for ParallelExecutor
impl !UnwindSafe for ParallelExecutor
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more