Skip to main content

run_spike

Function run_spike 

pub fn run_spike(cfg: &SpikeConfig) -> Result<SpikeReport>
Expand description

Runs the whole oniro tuning spike and returns its report.

Dispatches on SpikeConfig::segments: None runs the M3.3 path (one oniro-trial child process per replicate, one oniro run inside it), Some runs the M4.6 segmented path (a chain of resumable oniro run processes per trial, with an intermediate report and a checkpoint reference between them). Everything else — the space, the sampler, the multi-seed protocol, the journal, the held-out re-evaluation stage — is identical in both.

§Errors

SpikeError from any stage: a bad overlay/config, a storage or study fault, or the re-evaluation stage. SpikeError::ResourceCap if parallelism is above MAX_PARALLELISM, which is checked before any directory is created. Two configuration conflicts are refused up front rather than run: a scheduler with a multi-seed fan (SpikeError::Protocol — Oniro has no unambiguous fan-checkpoint lineage for pause/fork) and a scheduler with no segments (SpikeError::Protocol — a one-process trial reports nothing, so the scheduler would never have a decision point). A failing trial is not an error — it is recorded as a failed (diverged) trial and the run continues (04-rl-and-oniro.md §A.4).