Sampler, scheduler and storage catalog¶
Every sampler, scheduler and storage backend atune ships, with the feature that gates it.
Three seams, three tables. A study takes one sampler (which chooses the next point), at most one scheduler (which decides whether a running trial continues) and one storage backend (which holds the trials). Each is a trait you can also implement yourself; the extending guide covers that side of it.
An entry marked always is there in a default build. Anything else needs its feature turned on:
[dependencies]
atune = { version = "0.1", features = ["gp", "sqlite"] }
This page is generated from the facade's own module re-export lists —
atune::sampler, atune::scheduler, atune::storage — narrowed to the types that
implement the seam's trait, with each description taken from that type's own
rustdoc summary. A new sampler appears here because it appears in the facade. And
if the two disagree, the generator fails instead of publishing a table: the
paths in the Path column are the lists it reads, so a type that implements the
trait without being re-exported from them is a bug in the facade rather than a row
to leave out.
Generated file. Do not edit between the pragmas below — run
cargo dev generate-all --mode write instead. Everything outside them is
hand-written and is never touched.
Samplers¶
Every type that implements Sampler, from atune::sampler. Pass one to StudyBuilder::sampler; the default is Random. There are 9 today, and each row's description is that type's own rustdoc summary.
| Type | Path | Feature | What it does |
|---|---|---|---|
Carbs |
atune::sampler::Carbs |
carbs |
CARBS — a cost-aware Bayesian-optimization Sampler. |
Cmaes |
atune::sampler::Cmaes |
cmaes |
The Covariance Matrix Adaptation Evolution Strategy. |
Dehb |
atune::sampler::Dehb |
always | Differential-Evolution Hyperband: a stateful DE sampler over a Hyperband fidelity schedule. |
GpEi |
atune::sampler::GpEi |
gp |
The Gaussian-process sampler with the numerically-stable logEI acquisition. |
Grid |
atune::sampler::Grid |
always | Walks every point of a finite space, once each, in a fixed order. |
Nsga2 |
atune::sampler::Nsga2 |
always | The elitist non-dominated sorting genetic algorithm (NSGA-II) as a Sampler. |
Qmc |
atune::sampler::Qmc |
always | A quasi-random Sobol sampler. |
Random |
atune::sampler::Random |
always | Samples every parameter independently and uniformly over its support. |
Tpe |
atune::sampler::Tpe |
always | A Tree-structured Parzen Estimator sampler. |
Schedulers¶
Every type that implements Scheduler, from atune::scheduler. A scheduler decides whether a reporting trial continues, is pruned, is paused or forks; the default is NopScheduler, which never stops anything. There are 9 today, and each row's description is that type's own rustdoc summary.
| Type | Path | Feature | What it does |
|---|---|---|---|
AshaPruner |
atune::scheduler::AshaPruner |
always | The asynchronous successive-halving pruner. |
FreezeThaw |
atune::scheduler::FreezeThaw |
always | The freeze-thaw scheduler: pause many, extrapolate, resume the promising few. |
HyperbandPruner |
atune::scheduler::HyperbandPruner |
always | Asynchronous Hyperband: a fan of AshaPruner brackets over one ladder. |
MedianPruner |
atune::scheduler::MedianPruner |
always | Median / percentile stopping. |
NopScheduler |
atune::scheduler::NopScheduler |
always | Lets every trial run to completion. |
Patient |
atune::scheduler::Patient |
always | A decorator that delays an inner scheduler's prune until a trial has stopped improving. |
Pb2 |
atune::scheduler::Pb2 |
pb2 |
PB2: population-based training with a time-varying GP-UCB explore step. |
Pbt |
atune::scheduler::Pbt |
always | Population-based training: exploit-and-explore at a fixed interval — the guide's population-based training runs one end to end. |
WilcoxonPruner |
atune::scheduler::WilcoxonPruner |
always | A statistical pruner: prune a trial that is significantly worse than the incumbent under a paired Wilcoxon signed-rank test. |
Storage backends¶
Every type that implements Storage, from atune::storage. They all pass the same conformance suite, so the choice between them is operational rather than semantic. There are 4 today, and each row's description is that type's own rustdoc summary.
| Type | Path | Feature | What it does |
|---|---|---|---|
JournalStorage |
atune::storage::JournalStorage |
system |
A study in one append-only file: grep-able, resumable, and shared between processes with no server. |
MemStorage |
atune::storage::MemStorage |
always | The reference in-memory Storage backend: RwLock-guarded, copy-on-write reads. |
RemoteStorage |
atune::storage::RemoteStorage |
remote |
A network Storage that talks to an atune serve process. |
SqliteStorage |
atune::storage::SqliteStorage |
sqlite |
A Storage backend over a single SQLite database. |