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. Choosing it is a statement: no trial is ever stopped early, so a multi-fidelity budget is spent in full on every configuration.
The real schedulers — median stopping, ASHA, Hyperband, and the
pause/fork-capable PBT family — live beside it. 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::new_with_study_seed(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
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for NopScheduler
§impl Debug for NopScheduler
impl Debug for NopScheduler
§impl Default for NopScheduler
impl Default for NopScheduler
§fn default() -> NopScheduler
fn default() -> NopScheduler
Returns the “default value” for a type. Read more
impl Eq for NopScheduler
§impl PartialEq for NopScheduler
impl PartialEq for NopScheduler
§impl Scheduler for NopScheduler
impl Scheduler for NopScheduler
§fn on_report(
&self,
_study: &StudyView,
_trial: &TrialMeta,
_step: u64,
_values: &[f64],
) -> Result<Decision>
fn on_report( &self, _study: &StudyView, _trial: &TrialMeta, _step: u64, _values: &[f64], ) -> Result<Decision>
§fn scripted_capability(&self) -> ScriptedSchedulerCapability
fn scripted_capability(&self) -> ScriptedSchedulerCapability
§fn fan_report_mode(&self) -> FanReportMode
fn fan_report_mode(&self) -> FanReportMode
Declares whether this scheduler accepts aligned aggregate fan reports. Read more
§fn population_report_mode(&self) -> PopulationReportMode
fn population_report_mode(&self) -> PopulationReportMode
Declares whether this scheduler accepts one shared report batch from
several population members. This is distinct from fanned replicate
reports. The default is fail-closed.
§fn on_population_report(
&self,
study: &StudyView,
reports: &[PopulationReport],
) -> Result<Vec<PopulationDecision>>
fn on_population_report( &self, study: &StudyView, reports: &[PopulationReport], ) -> Result<Vec<PopulationDecision>>
Decides all members at one population boundary from the same snapshot. Read more
§fn on_trial_end(
&self,
study: &StudyView,
trial: &FrozenTrial,
) -> Result<Vec<Command>>
fn on_trial_end( &self, study: &StudyView, trial: &FrozenTrial, ) -> Result<Vec<Command>>
Called once a trial reaches a terminal state. Read more
§fn resume_candidates(&self, study: &StudyView) -> Result<Vec<Command>>
fn resume_candidates(&self, study: &StudyView) -> Result<Vec<Command>>
Paused trials worth waking on a freed work slot, in priority order. Read more
§fn state(&self) -> Result<Option<SchedulerState>>
fn state(&self) -> Result<Option<SchedulerState>>
The scheduler’s persistable state, if it has any. Read more
§fn restore_state(&self, blob: &SchedulerState) -> Result<()>
fn restore_state(&self, blob: &SchedulerState) -> Result<()>
impl StructuralPartialEq for NopScheduler
Auto Trait Implementations§
impl Freeze for NopScheduler
impl RefUnwindSafe for NopScheduler
impl Send for NopScheduler
impl Sync for NopScheduler
impl Unpin for NopScheduler
impl UnsafeUnpin for NopScheduler
impl UnwindSafe for NopScheduler
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more