Skip to content

Generator Lifecycle and Data Multiplexing #3

Description

@somombo

Right now, impalab runs tasks strictly sequentially. If you look at run_benchmarks in your benchmark.rs file, the orchestrator loops over each task and calls run_pipeline, which spawns a fresh instance of both the generator and the executor for every single task.

  • The Problem: If you have 5 executor tasks, the generator processes and computes the exact same dataset 5 separate times.
  • The Streaming Solution: A true streaming architecture should decouple the generator's lifecycle from the executor's lifecycle. impa should spawn the generator once, and either:
  1. Tee/Broadcast the stream to multiple executors concurrently (though this risks CPU resource contention).
  2. Buffer/Cache the stream using a memory-mapped file or named pipe (FIFO) so the generator only runs once, and the framework simply streams the cached bytes to each sequential executor at maximum I/O speed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions