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).