Skip to content

Add discrete-time simulation engine and classical scheduling baselines - #1

Merged
TohruSu merged 2 commits into
mainfrom
feat/simulation-baselines
Oct 15, 2026
Merged

TohruSu merged 2 commits into
mainfrom
feat/simulation-baselines

Conversation

@TohruSu

@TohruSu TohruSu commented Oct 15, 2026 •

Copy link
Copy Markdown
Owner

AdaptiveQueue now supports reproducible experiments comparing scheduling policies on a single non-preemptive worker. Policies receive (waiting_jobs, current_time) with currently available jobs and the current integer simulation time; the episode continues until every job finishes. Baseline selection rules and seeded Random behavior are unchanged.

  • Add immutable job specifications, per-job execution records, and an integer-time simulation engine.
  • Implement FIFO, SPT, EDF, Priority, and uniformly seeded Random scheduling, with arrival/ID tie-breaking for deterministic policies.
  • Add configurable stable, bursty, and mixed workloads (60 jobs by default), priority-weighted scheduling cost, deadline miss rate, and waiting/flow metrics.
  • Provide an installable CLI, practical README, simulation reference, and CI checks on Python 3.10 and 3.12.

The clock advances to completions or the next arrival instead of processing ticks with no decisions. Workloads and Random policies use separate local RNGs. The waiting-time 95th percentile uses linear interpolation; empty episodes have zero metrics.

Validation on Python 3.12: 39 pytest tests passed; Ruff lint and formatting checks, strict mypy targeting Python 3.10, and git diff whitespace checks passed. Both README example commands ran successfully.

@TohruSu
TohruSu merged commit f63bfe0 into main Oct 15, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant