WIP: switch to announcement, remove extract input mess
This commit is contained in:
48 files changed
+685
-1187
No files matched your search
@@ -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();
|
||||
|
||||
Reference in new issue
Block a user