From cdc0d3961b8a5821a38412de28d0e11685166246 Mon Sep 17 00:00:00 2001 From: TohruSu <238259854+TohruSu@users.noreply.github.com> Date: Thu, 15 Oct 2026 12:08:59 +0000 Subject: [PATCH] Add reproducible scheduling benchmark and experimental comparison --- .github/workflows/checks.yml | 2 +- .gitignore | 3 + README.md | 20 +- benchmarks/default/action_distribution.csv | 37 + .../default/figures/deadline_miss_rate.png | Bin 0 -> 95900 bytes .../default/figures/scheduling_cost.png | Bin 0 -> 93848 bytes .../default/models/qlearning_seed_2042.json | 1153 +++++++++++++++++ .../default/models/qlearning_seed_4042.json | 1125 ++++++++++++++++ .../default/models/qlearning_seed_42.json | 1125 ++++++++++++++++ benchmarks/default/per_episode.csv | 721 +++++++++++ benchmarks/default/protocol.json | 67 + benchmarks/default/summary.csv | 25 + docs/experiments.md | 102 ++ pyproject.toml | 1 + src/adaptivequeue/benchmark.py | 280 ++++ src/adaptivequeue/cli.py | 13 + tests/test_benchmark.py | 167 +++ tests/test_cli.py | 22 + 18 files changed, 4858 insertions(+), 5 deletions(-) create mode 100644 benchmarks/default/action_distribution.csv create mode 100644 benchmarks/default/figures/deadline_miss_rate.png create mode 100644 benchmarks/default/figures/scheduling_cost.png create mode 100644 benchmarks/default/models/qlearning_seed_2042.json create mode 100644 benchmarks/default/models/qlearning_seed_4042.json create mode 100644 benchmarks/default/models/qlearning_seed_42.json create mode 100644 benchmarks/default/per_episode.csv create mode 100644 benchmarks/default/protocol.json create mode 100644 benchmarks/default/summary.csv create mode 100644 docs/experiments.md create mode 100644 src/adaptivequeue/benchmark.py create mode 100644 tests/test_benchmark.py diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index abdee7d..1c7ae3b 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -13,7 +13,7 @@ jobs: - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - - run: python -m pip install -e '.[dev]' + - run: python -m pip install -e '.[dev,benchmark]' - run: python -m pytest - run: ruff check . - run: ruff format --check . diff --git a/.gitignore b/.gitignore index 6f596e1..51f5ed7 100644 --- a/.gitignore +++ b/.gitignore @@ -218,3 +218,6 @@ __marimo__/ # Streamlit .streamlit/secrets.toml + +# Default local benchmark output; reference results live in benchmarks/default. +benchmark-results/ diff --git a/README.md b/README.md index 2c0f095..6da910c 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,13 @@ A lightweight Python project for experimenting with adaptive background job scheduling. Includes a discrete-time, single-worker simulator, FIFO, SPT, EDF, Priority, and seeded Random baselines, and a tabular Q-Learning meta-scheduler. -Requires Python 3.10 or newer. There are no runtime dependencies. +Requires Python 3.10 or newer. Simulation and learning have no runtime +dependencies; benchmark figures use the optional Matplotlib extra. ```sh python -m venv .venv source .venv/bin/activate -python -m pip install -e '.[dev]' +python -m pip install -e '.[dev,benchmark]' ``` Run an episode with 60 jobs: @@ -35,6 +36,17 @@ Evaluation defaults to seeds following the saved training range, with exploratio disabled. Use `--seed` to choose a different disjoint range. Both commands accept the workload options below; `train --help` lists learning and exploration settings. +Run the fixed paired benchmark (three independently trained models and all five +baselines, across three workloads and 30 evaluation seeds): + +```sh +adaptivequeue benchmark --output-dir benchmark-results +``` + +Models are cached in the output directory; `--retrain` regenerates them. +See [experimental results and reproduction details](docs/experiments.md) for +the observed comparisons and CSV definitions. + ```sh python -m adaptivequeue --workload bursty --policy spt --seed 7 \ --jobs 60 --arrival-rate 0.3 --deadline-factor 3 @@ -46,5 +58,5 @@ mypy See [simulation rules and parameters](docs/simulation.md) or run `adaptivequeue --help`. The Python API also exposes per-job execution records. -The current scope is simulation, classical baselines, and CPU-only tabular -Q-Learning; no additional runtime dependencies are needed. +The current scope is simulation, classical baselines, CPU-only tabular +Q-Learning, and reproducible benchmarking. diff --git a/benchmarks/default/action_distribution.csv b/benchmarks/default/action_distribution.csv new file mode 100644 index 0000000..f7817c0 --- /dev/null +++ b/benchmarks/default/action_distribution.csv @@ -0,0 +1,37 @@ +workload,training_seed,action,policy,selections,fraction,contended_selections,contended_fraction +stable,42,0,fifo,191,0.10611111111111111,73,0.05615384615384615 +stable,42,1,spt,677,0.3761111111111111,590,0.45384615384615384 +stable,42,2,edf,263,0.1461111111111111,222,0.17076923076923076 +stable,42,3,priority,669,0.37166666666666665,415,0.3192307692307692 +stable,2042,0,fifo,202,0.11222222222222222,141,0.10854503464203233 +stable,2042,1,spt,377,0.20944444444444443,358,0.27559661277906083 +stable,2042,2,edf,818,0.45444444444444443,481,0.37028483448806776 +stable,2042,3,priority,403,0.2238888888888889,319,0.2455735180908391 +stable,4042,0,fifo,197,0.10944444444444444,184,0.1399239543726236 +stable,4042,1,spt,545,0.30277777777777776,522,0.39695817490494295 +stable,4042,2,edf,533,0.2961111111111111,266,0.20228136882129277 +stable,4042,3,priority,525,0.2916666666666667,343,0.26083650190114066 +bursty,42,0,fifo,36,0.02,30,0.018115942028985508 +bursty,42,1,spt,969,0.5383333333333333,949,0.5730676328502415 +bursty,42,2,edf,316,0.17555555555555555,231,0.13949275362318841 +bursty,42,3,priority,479,0.26611111111111113,446,0.2693236714975845 +bursty,2042,0,fifo,329,0.1827777777777778,256,0.15440289505428226 +bursty,2042,1,spt,741,0.4116666666666667,730,0.44028950542822676 +bursty,2042,2,edf,428,0.23777777777777778,395,0.2382388419782871 +bursty,2042,3,priority,302,0.16777777777777778,277,0.16706875753920386 +bursty,4042,0,fifo,148,0.08222222222222222,142,0.08559373116335142 +bursty,4042,1,spt,826,0.4588888888888889,768,0.4629294755877034 +bursty,4042,2,edf,338,0.18777777777777777,289,0.17420132610006028 +bursty,4042,3,priority,488,0.27111111111111114,460,0.27727546714888485 +mixed,42,0,fifo,190,0.10555555555555556,130,0.09537784299339692 +mixed,42,1,spt,642,0.3566666666666667,549,0.4027879677182685 +mixed,42,2,edf,209,0.11611111111111111,164,0.12032281731474688 +mixed,42,3,priority,759,0.4216666666666667,520,0.3815113719735877 +mixed,2042,0,fifo,261,0.145,155,0.1151560178306092 +mixed,2042,1,spt,517,0.2872222222222222,478,0.3551263001485884 +mixed,2042,2,edf,640,0.35555555555555557,401,0.29791976225854383 +mixed,2042,3,priority,382,0.21222222222222223,312,0.23179791976225855 +mixed,4042,0,fifo,240,0.13333333333333333,237,0.17400881057268722 +mixed,4042,1,spt,452,0.2511111111111111,441,0.3237885462555066 +mixed,4042,2,edf,683,0.3794444444444444,382,0.28046989720998533 +mixed,4042,3,priority,425,0.2361111111111111,302,0.22173274596182085 diff --git a/benchmarks/default/figures/deadline_miss_rate.png b/benchmarks/default/figures/deadline_miss_rate.png new file mode 100644 index 0000000000000000000000000000000000000000..67bc5928b5ad1cfabbbdcccf7630a64db97af44c GIT binary patch literal 95900 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%0D7Zk=ALNsZkfXz3VbWK3iZy0=J@%ha= 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

L-8>_tKwW5FXw`>!Rr}is27AdH(c&_Q&7t-2 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øTf|aK-bsv^2CGZj9dTj9c%A+n_fP=zIidWHkpY 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", "ruff>=0.9", "mypy>=1.14"] +benchmark = ["matplotlib>=3.8"] [project.scripts] adaptivequeue = "adaptivequeue.cli:main" diff --git a/src/adaptivequeue/benchmark.py b/src/adaptivequeue/benchmark.py new file mode 100644 index 0000000..49ee13a --- /dev/null +++ b/src/adaptivequeue/benchmark.py @@ -0,0 +1,280 @@ +"""Paired scheduling experiments with separate Q-Learning training runs.""" + +import csv +import json +import platform +from dataclasses import asdict, dataclass, fields +from pathlib import Path +from statistics import fmean, stdev +from typing import Sequence + +from adaptivequeue.metrics import Metrics +from adaptivequeue.models import Job +from adaptivequeue.policies import POLICY_NAMES, make_policy +from adaptivequeue.qlearning import ( + ACTION_NAMES, + ACTION_POLICIES, + LearningConfig, + QLearningAgent, + TrainingInfo, + encode_state, + train, +) +from adaptivequeue.simulation import simulate +from adaptivequeue.workloads import WORKLOADS, WorkloadConfig + +TRAINING_SEEDS = (42, 2042, 4042) +EVALUATION_SEEDS = tuple(range(20000, 20030)) +METRIC_NAMES = tuple(field.name for field in fields(Metrics)) + + +@dataclass(frozen=True) +class EpisodeResult: + workload: str + evaluation_seed: int + policy: str + training_seed: int | None + metrics: Metrics + + +def summarize(results: Sequence[EpisodeResult]) -> list[dict[str, object]]: + """Average episode metrics and compare paired costs, without pooling RL runs.""" + groups: dict[tuple[str, str, int | None], list[EpisodeResult]] = {} + baselines = { + (row.workload, row.evaluation_seed, row.policy): row.metrics.primary_cost + for row in results + if row.training_seed is None + } + for row in results: + groups.setdefault((row.workload, row.policy, row.training_seed), []).append(row) + summary = [] + for (workload, policy, training_seed), episodes in groups.items(): + row_data: dict[str, object] = { + "workload": workload, + "policy": policy, + "training_seed": training_seed, + "episodes": len(episodes), + } + row_data.update( + { + f"mean_{name}": fmean(getattr(episode.metrics, name) for episode in episodes) + for name in METRIC_NAMES + } + ) + row_data["std_primary_cost"] = ( + stdev(episode.metrics.primary_cost for episode in episodes) + if len(episodes) > 1 + else 0.0 + ) + for baseline in POLICY_NAMES: + differences = [ + episode.metrics.primary_cost + - baselines[(workload, episode.evaluation_seed, baseline)] + for episode in episodes + ] + row_data[f"mean_cost_delta_vs_{baseline}"] = fmean(differences) + row_data[f"cost_win_rate_vs_{baseline}"] = fmean(value < 0 for value in differences) + summary.append(row_data) + return summary + + +def _write_csv(path: Path, rows: Sequence[dict[str, object]]) -> None: + with path.open("w", newline="", encoding="utf-8") as stream: + writer = csv.DictWriter(stream, fieldnames=list(rows[0]), lineterminator="\n") + writer.writeheader() + writer.writerows(rows) + + +def _load_or_train( + directory: Path, seeds: Sequence[int], episodes: int, *, retrain: bool +) -> dict[int, QLearningAgent]: + directory.mkdir(parents=True, exist_ok=True) + agents = {} + for seed in seeds: + path = directory / f"qlearning_seed_{seed}.json" + if path.exists() and not retrain: + agent = QLearningAgent.load(path) + expected = TrainingInfo("mixed", WorkloadConfig(), episodes, seed) + if agent.training != expected or agent.config != LearningConfig() or agent.seed != seed: + raise ValueError(f"cached model configuration differs: {path}; use --retrain") + else: + agent = train( + workload="mixed", + episodes=episodes, + seed=seed, + workload_config=WorkloadConfig(), + learning_config=LearningConfig(), + ) + agent.save(path) + agents[seed] = agent + return agents + + +def _evaluate_agent( + agent: QLearningAgent, jobs: Sequence[Job] +) -> tuple[Metrics, list[int], list[int]]: + counts = [0] * len(ACTION_NAMES) + contended = [0] * len(ACTION_NAMES) + + def policy(waiting_jobs: Sequence[Job], current_time: int) -> Job: + action = agent.greedy_action(encode_state(waiting_jobs, current_time)) + counts[action] += 1 + contended[action] += len(waiting_jobs) > 1 + return ACTION_POLICIES[action](waiting_jobs, current_time) + + return simulate(jobs, policy).metrics, counts, contended + + +def plot_results(results: Sequence[EpisodeResult], output_dir: Path) -> None: + try: + import matplotlib + + matplotlib.use("Agg") + import matplotlib.pyplot as plt + except ImportError as error: + raise ValueError( + "plotting requires Matplotlib; install adaptivequeue[benchmark]" + ) from error + + output_dir.mkdir(parents=True, exist_ok=True) + workloads = list(dict.fromkeys(row.workload for row in results)) + series = list(dict.fromkeys((row.policy, row.training_seed) for row in results)) + labels = [name.upper() if seed is None else f"QL {seed}" for name, seed in series] + for metric, filename, label in ( + ("primary_cost", "scheduling_cost.png", "Scheduling cost J (lower is better)"), + ("deadline_miss_rate", "deadline_miss_rate.png", "Deadline miss rate"), + ): + figure, axes = plt.subplots( + 1, len(workloads), figsize=(5 * len(workloads), 4.8), squeeze=False + ) + for axis, workload in zip(axes[0], workloads): + values = [ + [ + getattr(row.metrics, metric) + for row in results + if row.workload == workload and (row.policy, row.training_seed) == key + ] + for key in series + ] + boxes = axis.boxplot(values, showmeans=True, patch_artist=True) + for index, box in enumerate(boxes["boxes"]): + box.set_facecolor(plt.get_cmap("tab10")(index)) + box.set_alpha(0.55) + axis.set_xticks(range(1, len(series) + 1), labels, rotation=45, ha="right") + axis.set_title(workload) + axis.set_ylabel(label) + axis.set_ylim(bottom=0) + axis.grid(axis="y", alpha=0.25) + figure.suptitle("Episode distributions; line = median, triangle = mean") + figure.tight_layout() + figure.savefig(output_dir / filename, dpi=150) + plt.close(figure) + + +def run_benchmark( + output_dir: str | Path, + *, + training_seeds: Sequence[int] = TRAINING_SEEDS, + training_episodes: int = 1000, + evaluation_seeds: Sequence[int] = EVALUATION_SEEDS, + workloads: Sequence[str] = ("stable", "bursty", "mixed"), + retrain: bool = False, + plots: bool = True, +) -> list[EpisodeResult]: + """Run the fixed protocol; smaller seed sets are useful for focused tests.""" + if training_episodes < 1 or not training_seeds or not evaluation_seeds or not workloads: + raise ValueError( + "benchmark needs positive training episodes and nonempty seed/workload sets" + ) + for seeds in (training_seeds, evaluation_seeds): + if len(set(seeds)) != len(seeds) or min(seeds) < 0: + raise ValueError("benchmark seeds must be unique and nonnegative") + if any(name not in WORKLOADS for name in workloads) or len(set(workloads)) != len(workloads): + raise ValueError("benchmark workloads must be unique registered workload names") + if any( + start <= seed < start + training_episodes + for start in training_seeds + for seed in evaluation_seeds + ): + raise ValueError("evaluation seeds must not overlap training seeds") + + directory = Path(output_dir) + agents = _load_or_train( + directory / "models", training_seeds, training_episodes, retrain=retrain + ) + results = [] + counts = { + (workload, seed): [0] * len(ACTION_NAMES) + for workload in workloads + for seed in training_seeds + } + contended = { + (workload, seed): [0] * len(ACTION_NAMES) + for workload in workloads + for seed in training_seeds + } + for workload in workloads: + for evaluation_seed in evaluation_seeds: + jobs = WORKLOADS[workload](evaluation_seed, WorkloadConfig()) + for name in POLICY_NAMES: + metrics = simulate(jobs, make_policy(name, seed=evaluation_seed)).metrics + results.append(EpisodeResult(workload, evaluation_seed, name, None, metrics)) + for training_seed, agent in agents.items(): + metrics, selections, choices = _evaluate_agent(agent, jobs) + results.append( + EpisodeResult(workload, evaluation_seed, "qlearning", training_seed, metrics) + ) + for action in range(len(ACTION_NAMES)): + counts[(workload, training_seed)][action] += selections[action] + contended[(workload, training_seed)][action] += choices[action] + + episode_rows = [ + { + "workload": row.workload, + "evaluation_seed": row.evaluation_seed, + "policy": row.policy, + "training_seed": row.training_seed, + **asdict(row.metrics), + } + for row in results + ] + action_rows: list[dict[str, object]] = [] + for (workload, seed), selections in counts.items(): + choices = contended[(workload, seed)] + total, total_contended = sum(selections), sum(choices) + for action, name in enumerate(ACTION_NAMES): + action_rows.append( + { + "workload": workload, + "training_seed": seed, + "action": action, + "policy": name, + "selections": selections[action], + "fraction": selections[action] / total if total else 0.0, + "contended_selections": choices[action], + "contended_fraction": choices[action] / total_contended + if total_contended + else 0.0, + } + ) + _write_csv(directory / "per_episode.csv", episode_rows) + _write_csv(directory / "summary.csv", summarize(results)) + _write_csv(directory / "action_distribution.csv", action_rows) + protocol = { + "training_workload": "mixed", + "training_episodes": training_episodes, + "training_seeds": list(training_seeds), + "learning_config": asdict(LearningConfig()), + "workload_config": asdict(WorkloadConfig()), + "evaluation_workloads": list(workloads), + "evaluation_seeds": list(evaluation_seeds), + "random_policy_seed": "evaluation_seed", + "aggregation": "mean of episode metrics; sample standard deviation of episode cost", + "python_version": platform.python_version(), + } + (directory / "protocol.json").write_text( + json.dumps(protocol, indent=2) + "\n", encoding="utf-8" + ) + if plots: + plot_results(results, directory / "figures") + return results diff --git a/src/adaptivequeue/cli.py b/src/adaptivequeue/cli.py index c4d050c..ab50d75 100644 --- a/src/adaptivequeue/cli.py +++ b/src/adaptivequeue/cli.py @@ -54,9 +54,22 @@ def main() -> None: _add_workload_arguments(evaluation, workload="mixed", seed=None) evaluation.add_argument("--episodes", type=int, default=20) evaluation.add_argument("--model", type=Path, required=True) + + benchmark = commands.add_parser("benchmark", help="Run the reproducible paired benchmark") + benchmark.add_argument("--output-dir", type=Path, default=Path("benchmark-results")) + benchmark.add_argument("--retrain", action="store_true", help="Replace cached benchmark models") args = parser.parse_args() try: + if args.command == "benchmark": + from adaptivequeue.benchmark import run_benchmark + + results = run_benchmark(args.output_dir, retrain=args.retrain) + print( + f"Saved {len(results)} per-episode results, " + f"summaries, and figures to {args.output_dir}" + ) + return config = WorkloadConfig( num_jobs=args.jobs, arrival_rate=args.arrival_rate, diff --git a/tests/test_benchmark.py b/tests/test_benchmark.py new file mode 100644 index 0000000..7b22a89 --- /dev/null +++ b/tests/test_benchmark.py @@ -0,0 +1,167 @@ +import copy +import csv +import json +import random +from pathlib import Path +from typing import Iterable + +import pytest + +from adaptivequeue import Job, Metrics, SimulationResult, WorkloadConfig, benchmark, simulate +from adaptivequeue.benchmark import EpisodeResult, run_benchmark, summarize +from adaptivequeue.policies import POLICY_NAMES, Policy +from adaptivequeue.qlearning import QLearningAgent, train +from adaptivequeue.workloads import WORKLOADS + + +def test_fresh_and_cached_benchmarks_are_reproducible( + tmp_path: Path, monkeypatch: pytest.MonkeyPatch +) -> None: + settings = { + "training_seeds": (42, 2042), + "training_episodes": 2, + "evaluation_seeds": (20000, 20001), + "workloads": ("stable", "mixed"), + "plots": False, + } + global_state = random.getstate() + first, second = tmp_path / "first", tmp_path / "second" + results = run_benchmark(first, **settings) + assert results == run_benchmark(second, **settings) + assert len(results) == 2 * 2 * (5 + 2) + for name in ("per_episode.csv", "summary.csv", "action_distribution.csv", "protocol.json"): + assert (first / name).read_bytes() == (second / name).read_bytes() + + def fail(**kwargs: object) -> QLearningAgent: + pytest.fail("a cached benchmark must not retrain") + + monkeypatch.setattr(benchmark, "train", fail) + assert run_benchmark(first, **settings) == results + assert random.getstate() == global_state + with (first / "action_distribution.csv").open() as stream: + actions = list(csv.DictReader(stream)) + assert len(actions) == 2 * 2 * 4 + for workload in settings["workloads"]: + for seed in settings["training_seeds"]: + rows = [ + r for r in actions if r["workload"] == workload and int(r["training_seed"]) == seed + ] + assert sum(int(r["selections"]) for r in rows) == 2 * 60 + assert sum(float(r["fraction"]) for r in rows) == pytest.approx(1.0) + assert sum(float(r["contended_fraction"]) for r in rows) == pytest.approx(1.0) + assert all(int(r["contended_selections"]) <= int(r["selections"]) for r in rows) + + +def test_every_policy_receives_the_same_generated_jobs( + tmp_path: Path, monkeypatch: pytest.MonkeyPatch +) -> None: + generated: dict[int, list[Job]] = {} + observed: list[tuple[Job, ...]] = [] + + def generate(seed: int, config: WorkloadConfig) -> list[Job]: + assert seed not in generated + generated[seed] = WORKLOADS["mixed"](seed, config) + return generated[seed] + + def observe(jobs: Iterable[Job], policy: Policy) -> SimulationResult: + assert jobs is generated[20000] + observed.append(tuple(jobs)) + return simulate(jobs, policy) + + monkeypatch.setattr(benchmark, "WORKLOADS", {"mixed": generate}) + monkeypatch.setattr(benchmark, "simulate", observe) + run_benchmark( + tmp_path, + training_seeds=(42,), + training_episodes=2, + evaluation_seeds=(20000,), + workloads=("mixed",), + plots=False, + ) + assert len(generated) == 1 + assert len(observed) == 6 + assert all(jobs == observed[0] for jobs in observed) + assert tuple(generated[20000]) == observed[0] + + +def test_aggregation_keeps_runs_separate_and_pairs_evaluation_seeds() -> None: + results = [] + for seed, cost in ((1, 10.0), (2, 20.0)): + for policy in POLICY_NAMES: + results.append(EpisodeResult("mixed", seed, policy, None, Metrics(cost, 0.2, 2, 4, 6))) + for training_seed, rl_cost in ((42, 8.0 if seed == 1 else 22.0), (2042, cost + 4)): + metrics = Metrics(rl_cost, 0.1 * seed, 2 * seed, 10 * seed, 5 * seed) + results.append(EpisodeResult("mixed", seed, "qlearning", training_seed, metrics)) + summary = summarize(results) + assert len(summary) == 7 + runs = {row["training_seed"]: row for row in summary if row["policy"] == "qlearning"} + assert runs[42]["episodes"] == 2 + assert runs[42]["mean_primary_cost"] == 15 + assert runs[42]["std_primary_cost"] == pytest.approx(98**0.5) + assert runs[42]["mean_cost_delta_vs_fifo"] == 0 + assert runs[42]["cost_win_rate_vs_fifo"] == 0.5 + assert runs[42]["mean_deadline_miss_rate"] == pytest.approx(0.15) + assert runs[42]["mean_p95_waiting_time"] == 15 + assert runs[2042]["mean_primary_cost"] == 19 + assert runs[2042]["mean_cost_delta_vs_fifo"] == 4 + assert runs[2042]["cost_win_rate_vs_fifo"] == 0 + + +def test_benchmark_evaluation_is_frozen_and_counts_greedy_actions( + tmp_path: Path, monkeypatch: pytest.MonkeyPatch +) -> None: + agent = train(episodes=2, seed=42) + table_before = copy.deepcopy(agent.q_table) + rng_before = agent._rng.getstate() + expected = simulate(WORKLOADS["mixed"](20000, WorkloadConfig()), agent.policy).metrics + + def fail(*args: object, **kwargs: object) -> None: + pytest.fail("benchmark evaluation must not explore or learn") + + monkeypatch.setattr(agent, "choose_action", fail) + monkeypatch.setattr(agent, "update", fail) + monkeypatch.setattr(benchmark, "_load_or_train", lambda *args, **kwargs: {42: agent}) + rows = run_benchmark( + tmp_path, + training_seeds=(42,), + training_episodes=2, + evaluation_seeds=(20000,), + workloads=("mixed",), + plots=False, + ) + assert rows[-1].metrics == expected + assert agent.q_table == table_before + assert agent._rng.getstate() == rng_before + with (tmp_path / "action_distribution.csv").open() as stream: + actions = list(csv.DictReader(stream)) + assert sum(int(row["selections"]) for row in actions) == 60 + + +def test_cached_model_configuration_must_match(tmp_path: Path) -> None: + settings = { + "training_seeds": (42,), + "training_episodes": 1, + "evaluation_seeds": (20000,), + "workloads": ("mixed",), + "plots": False, + } + run_benchmark(tmp_path, **settings) + path = tmp_path / "models" / "qlearning_seed_42.json" + data = json.loads(path.read_text()) + data["training"]["episodes"] = 999 + path.write_text(json.dumps(data)) + with pytest.raises(ValueError, match="cached model configuration"): + run_benchmark(tmp_path, **settings) + + +def test_plot_files_are_generated(tmp_path: Path) -> None: + pytest.importorskip("matplotlib") + run_benchmark( + tmp_path, + training_seeds=(42,), + training_episodes=1, + evaluation_seeds=(20000, 20001), + workloads=("mixed",), + ) + for name in ("scheduling_cost.png", "deadline_miss_rate.png"): + assert (tmp_path / "figures" / name).read_bytes().startswith(b"\x89PNG\r\n\x1a\n") diff --git a/tests/test_cli.py b/tests/test_cli.py index 8f60ad5..0effed7 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -2,6 +2,10 @@ import sys from pathlib import Path +import pytest + +from adaptivequeue.cli import main + def test_module_cli_displays_metrics() -> None: result = subprocess.run( @@ -93,3 +97,21 @@ def test_cli_training_and_evaluation(tmp_path: Path) -> None: assert "Policy: qlearning | Episodes: 2" in evaluation.stdout assert "Primary cost J" in evaluation.stdout assert "95th-percentile waiting time" in evaluation.stdout + + +def test_benchmark_cli_dispatch_preserves_output_directory( + tmp_path: Path, monkeypatch: pytest.MonkeyPatch, capsys: pytest.CaptureFixture[str] +) -> None: + from adaptivequeue import benchmark + + called = [] + + def run(output_dir: Path, *, retrain: bool) -> list: + called.append((output_dir, retrain)) + return [] + + monkeypatch.setattr(benchmark, "run_benchmark", run) + monkeypatch.setattr(sys, "argv", ["adaptivequeue", "benchmark", "--output-dir", str(tmp_path)]) + main() + assert called == [(tmp_path, False)] + assert "per-episode results" in capsys.readouterr().out