Struct NopScheduler
pub struct NopScheduler;Expand description
Lets every trial run to completion.
The degenerate scheduler: it answers Decision::Continue to every
report, keeps no state, and persists nothing. It exists so that the study
loop has exactly one code path — a study always has a scheduler, and
“no pruning” is expressed as a scheduler rather than as an Option and a
branch at every call site.
This is what a study runs by default (M1.4). Choosing it is a statement: no trial is ever stopped early, so a multi-fidelity budget is spent in full on every configuration.
§Status
The real schedulers — median stopping, ASHA, Hyperband, and the
pause/fork-capable PBT family — arrive in M3 and M4. They are what
Decision::Pause and
Decision::Fork were declared for; NopScheduler
never produces either.
use atune_core::id::{StudyId, TrialId, TrialNumber};
use atune_core::scheduler::{Decision, NopScheduler, Scheduler};
use atune_core::study::StudyView;
use atune_core::trial::TrialMeta;
let scheduler = NopScheduler::new();
let view = StudyView::new(StudyId::new(0), vec![], None);
let trial = TrialMeta::derive(TrialId::new(1), TrialNumber::new(0), 0);
assert_eq!(
scheduler.on_report(&view, &trial, 10, &[0.5]).unwrap(),
Decision::Continue
);Implementations§
§impl NopScheduler
impl NopScheduler
pub const fn new() -> Self
pub const fn new() -> Self
Creates the scheduler.
Trait Implementations§
§impl Clone for NopScheduler
impl Clone for NopScheduler
§fn clone(&self) -> NopScheduler
fn clone(&self) -> NopScheduler
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more