WIP: switch to announcement, remove extract input mess

This commit is contained in:
swaits committed 2025-10-14 09:01:28 -06:00
1 parent 82cbf15b85
commit 6de4d43db1
48 files changed
+685 -1187

No files matched your search

+21 -11
View File
@@ -52,7 +52,7 @@
//! This proves dagx runs tasks on multiple CPU cores simultaneously.
//! ```
use dagx::{task, DagResult, DagRunner, Task};
use dagx::{task, DagResult, DagRunner};
use std::time::{Duration, Instant};
use tokio::time::sleep;
@@ -144,22 +144,32 @@ async fn main() -> DagResult<()> {
};
// ============================================================================
// SEQUENTIAL EXECUTION: Run the same 4 tasks one after another
// SEQUENTIAL EXECUTION: Run tasks one at a time in separate DAG executions
// ============================================================================
println!("Running SEQUENTIAL computation (same work, one at a time)...");
let (sequential_time, sequential_result) = {
let start = Instant::now();
// Run tasks sequentially (not using DAG, just raw execution)
let task1 = ComputeSum::new(1, 251, WORK_DELAY);
let task2 = ComputeSum::new(251, 501, WORK_DELAY);
let task3 = ComputeSum::new(501, 751, WORK_DELAY);
let task4 = ComputeSum::new(751, 1001, WORK_DELAY);
// Run each task separately to force sequential execution
let dag1 = DagRunner::new();
let sum1_handle = dag1.add_task(ComputeSum::new(1, 251, WORK_DELAY));
dag1.run(|fut| { tokio::spawn(fut); }).await?;
let r1 = dag1.get(sum1_handle)?;
let r1 = task1.run(()).await;
let r2 = task2.run(()).await;
let r3 = task3.run(()).await;
let r4 = task4.run(()).await;
let dag2 = DagRunner::new();
let sum2_handle = dag2.add_task(ComputeSum::new(251, 501, WORK_DELAY));
dag2.run(|fut| { tokio::spawn(fut); }).await?;
let r2 = dag2.get(sum2_handle)?;
let dag3 = DagRunner::new();
let sum3_handle = dag3.add_task(ComputeSum::new(501, 751, WORK_DELAY));
dag3.run(|fut| { tokio::spawn(fut); }).await?;
let r3 = dag3.get(sum3_handle)?;
let dag4 = DagRunner::new();
let sum4_handle = dag4.add_task(ComputeSum::new(751, 1001, WORK_DELAY));
dag4.run(|fut| { tokio::spawn(fut); }).await?;
let r4 = dag4.get(sum4_handle)?;
let result = r1 + r2 + r3 + r4;
let elapsed = start.elapsed();