Skip to content

updating throughput experiment to include reschedule counts and makespan - #65

Merged
jaredraycoleman merged 2 commits into
mainfrom
small_update
Jul 21, 2026
Merged

updating throughput experiment to include reschedule counts and makespan#65
jaredraycoleman merged 2 commits into
mainfrom
small_update

Conversation

@JasonChamorro

Copy link
Copy Markdown
Collaborator

Summary

Small updates to throughput experiment to include makespan and reschedule count

Type of change

  • Bug fix
  • New scheduler
  • New feature (other)
  • Refactor / maintenance
  • Docs / CI only

Checklist

  • Branched off main and up to date with it (no conflicts)
  • uv run pytest tests/ --timeout=120 passes locally
  • uv run mypy src/saga --ignore-missing-imports is clean
  • uv run ruff check src/saga and uv run ruff format --check src/saga are clean
  • New or changed behavior is covered by tests
  • Public functions/classes are typed and documented in the existing docstring style
  • No stray files, debug prints, unintended pyproject.toml/uv.lock changes, or version bump

Notes for reviewers

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request extends the throughput experiment pipeline to record additional outcome metrics (makespan and online-policy reschedule counts), enabling richer comparisons across schedulers/policies and improved visualization for both throughput and makespan.

Changes:

  • Added Environment.reschedule_count tracking and wired it into rescheduling policies.
  • Updated throughput experiment runner to emit Makespan and RescheduleCount columns per run.
  • Updated analysis script to normalize and render separate heatmaps for throughput and makespan.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
src/saga/schedulers/online/policy/reschedule.py Increment reschedule_count when reschedules occur across multiple rescheduling policies.
src/saga/schedulers/online/environment/frontier.py Reset reschedule_count in FrontierEnvironment.reset().
src/saga/schedulers/online/environment/init.py Add and reset Environment.reschedule_count as part of simulation state.
scripts/experiments/throughput_experiment/run.py Emit throughput, makespan, and reschedule counts into experiment CSV rows.
scripts/experiments/throughput_experiment/analyze.py Normalize throughput/makespan separately and generate two heatmaps per workflow.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/saga/schedulers/online/policy/reschedule.py
Comment thread src/saga/schedulers/online/policy/reschedule.py
Comment thread src/saga/schedulers/online/policy/reschedule.py
Comment thread src/saga/schedulers/online/policy/reschedule.py
Comment thread src/saga/schedulers/online/environment/__init__.py
OnlinePolicy.update() is documented to return None when it leaves the schedule
unchanged, but the no-reschedule branches returned environment.schedule. That
made Environment.step() treat every step as a revision and redo the task/network
state recompute for nothing. Return None instead.

reschedule_count is unaffected (it is incremented after the no-reschedule guard,
so it already counted only real reschedules); add tests covering that it starts
at zero, resets per run, stays zero under a never-rescheduling policy, and
matches the reschedule count under an always-rescheduling policy.
@jaredraycoleman
jaredraycoleman merged commit bf33ee0 into main Jul 21, 2026
4 checks passed
@jaredraycoleman
jaredraycoleman deleted the small_update branch July 21, 2026 14:23
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.

3 participants