Module scheduler_equivalence

Module scheduler_equivalence 

Source
Expand description

2026-09-26: Scheduler equivalence: one BFCL draw served under the sync and the async device router (--scheduler-config), compared per sample_id and per concurrency.

Owner: bench, scheduler-equivalence gate. Invariants:

  • A sample agrees only when its canonical transcript (reasoning, text, tool calls with raw arguments, finish reason) and its completion token count are equal under both routers; a failed request is unmeasured, never equal.
  • Each serve pins its speculation lane (host::Lane), because the MTP gate otherwise picks verify or plain decode by measured throughput.
  • With the control on, the sync serve is measured twice per lane, and a control that diverged fails the run before the async column is read.
  • The async router’s counters are recorded as async_* metrics and take no part in the verdict.
  • Loading fails without an installed host::RouterHost; the serving process installs one as it starts.

Re-exports§

pub use driver::DESCRIPTOR;
pub use driver::METADATA;

Modules§

compare
2026-09-26: Given what each pass produced, decide whether the synchronous and asynchronous routers are the same function of a request. No I/O, so the tests build each failure without a server.
driver
2026-09-26: The scheduler-equivalence driver: serve each router under each lane, issue the draw at each concurrency, and hand the legs to compare.
host
2026-09-26: The seam the scheduler-equivalence gate re-serves the checkpoint through: the serving process installs a RouterHost, because this crate starts no server.
report
2026-09-26: How a scheduler-equivalence run is presented: the terminal frame built from compare::score.
unmeasured
2026-09-25: Why a sample is unmeasured: one entry per request that failed or never came back.