Applied mathematics / Live research notebook
Adaptive Scheduling
Under Uncertainty.
Learning when to wait, interrupt, parallelise and predict. This page is generated directly from a simulation engine running continuously on a local machine. Everything below carries an explicit evidence status — a simulation result is not a theorem.
01 Core research question
Core research question
How should a scheduler adapt when job duration is initially unknown but becomes statistically predictable through repeated execution?
Status is mandatory
What the data
currently supports.
Each statement is labelled with how much epistemic weight it carries. Nothing here is proven. An empirical observation holds only over the parameter domain actually swept.
Running now
—Experiment 001
Prediction error vs performance.
Sweeping the noise level of a multiplicative lognormal predictor, T̂ = T·eε with ε ~ N(0,σ), across utilisation and duration distributions. σ is scale-free: σ = 0.5 means predictions are typically wrong by a factor of about 1.65 in either direction.
Where prediction stops paying
Locating σ*.
σ* is the noise level at which predicted-SJF stops beating FIFO. Found by interpolating between bracketing sweep points, so it is only as sharp as the grid.
| ρ | duration distribution | metric | σ* | status |
|---|---|---|---|---|
| Loading… | ||||
Stated, then attacked
Patterns that survived
an attempt to break them.
A conjecture is only created once a pattern is stable across seeds and regimes, and it is only kept after a deliberate search for counterexamples. Falsified conjectures stay on the record.
| id | statement | status | tested range | counterexamples |
|---|---|---|---|---|
| None yet — the evidence base is still being built. | ||||
The programme
Six questions,
one dependency chain.
Q2 is running. The rest are queued behind it, because a threshold result is only meaningful once the baselines are validated.
Chronological
Research log.
Reproducibility
How this is
actually computed.
A deterministic discrete-event simulator. The clock jumps between arrivals, completions and preemptions — there is no time discretisation, so no discretisation error.
Validation. Before any experiment ran, the simulator was checked against hand-computed schedules and against closed-form queueing theory. M/M/1 mean response reproduces 1/(1−ρ) within tolerance, SJF reproduces its optimality for mean response among non-preemptive policies, and SRPT reproduces its optimality over all policies on a single server. Invariants are re-checked after every single run: no job starts before it arrives, remaining work never goes negative, capacity is never exceeded, and service accounting closes exactly.
Oracles. Policies that read the true duration are labelled oracle and are impossible in a real system. They exist only to bound what any implementable policy could achieve.
Reproducibility. Randomness lives only in workload generation and is explicitly seeded. Every result row carries its full parameter set, so any number on this page can be regenerated exactly.
Open
Code and data.
Simulator, policies, workload generators, validation suite and sweep runner: source repository. The raw result stream is JSONL, one row per simulation, each self-describing.
This project sits inside the Self-Adaptive Infrastructure program. The earlier Dependable AI programme remains available at /research/corpus/ — paused, not deleted.