pub struct ParallelismStats {
pub total_nodes: usize,
pub num_layers: usize,
pub max_parallel_nodes: usize,
pub avg_parallel_nodes: f64,
pub theoretical_speedup: f64,
pub layers: Vec<ExecutionLayer>,
}Expand description
Statistics about parallelism in a graph
Fields§
§total_nodes: usize§num_layers: usize§max_parallel_nodes: usize§avg_parallel_nodes: f64§theoretical_speedup: f64§layers: Vec<ExecutionLayer>Implementations§
Source§impl ParallelismStats
impl ParallelismStats
Sourcepub fn print_summary(&self)
pub fn print_summary(&self)
Examples found in repository?
examples/parallel_execution.rs (line 305)
290async fn analyze_and_execute(def: GraphDef) -> anyhow::Result<()> {
291 // Create parallel executor
292 let mut executor = ParallelExecutor::new(ParallelConfig {
293 max_concurrent: 10,
294 verbose: true,
295 });
296
297 // Register nodes
298 for node_id in def.nodes.keys() {
299 let node: Box<dyn Node> = Box::new(RuleNode::new(node_id, "true"));
300 executor.register_node(node);
301 }
302
303 // Analyze parallelism
304 let stats = executor.get_parallelism_stats(&def)?;
305 stats.print_summary();
306
307 // Execute the graph
308 let mut graph = Graph::new(def);
309 let start = Instant::now();
310 executor.execute(&mut graph).await?;
311 let duration = start.elapsed();
312
313 println!("Execution completed in {:?}", duration);
314
315 Ok(())
316}Trait Implementations§
Auto Trait Implementations§
impl Freeze for ParallelismStats
impl RefUnwindSafe for ParallelismStats
impl Send for ParallelismStats
impl Sync for ParallelismStats
impl Unpin for ParallelismStats
impl UnwindSafe for ParallelismStats
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