Skip to content

Feature/probinso/fast schedule dependents#183

Open
robinson96 wants to merge 15 commits into
mainfrom
feature/probinso/fast_schedule_dependents
Open

Feature/probinso/fast schedule dependents#183
robinson96 wants to merge 15 commits into
mainfrom
feature/probinso/fast_schedule_dependents

Conversation

@robinson96
Copy link
Copy Markdown
Collaborator

Summary

Adds reusable ATS ready-queue helpers for schedulers that cache structurally
ready work and choose the largest priority bucket that meets a user defined readiness criteria.

Changes

  • Add ats.ready_queue.ReadyWorkSet for priority-binned ready work.
  • Add focused scheduler extension documentation for cached ready schedulers,
    including a copyable minimal scheduler example.
  • Add unit test covering the documentation example.

comments

This is the first of ~6 upcoming branches enabling reduction in scheduling overheads.

@robinson96 robinson96 requested review from ryanq4 and stephdempsey May 19, 2026 16:43
Comment thread docs/source/ats.rst
return

Production schedulers also need logging, retry behavior, group-output handling,
periodic reports, and a cheap "work remains" check. The example shows the
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

It looks like we could use start_available for step() but right now step also returns true if there is still work to do. Can ready_count be used for this or do we still need to maintain a list of groups and check for CREATED (or something similar)?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

If I'm understanding your question, ready_count would exclude tests that are CREATED but blocked by dependencies, which I think would be different than what you're referring to.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I might be looking too far ahead but I was thinking about this loop and probably trying to prematurely optimize. I was wondering if we could use ready_count to determine if work still needed to be done. That is, since the dependencies are being counted then would 0 ready_count indicate all work finished?

@ryanq4
Copy link
Copy Markdown
Collaborator

ryanq4 commented May 21, 2026

This looks like good infrastructure for future work.
Looking through it some important points I noticed were that order_lookup, priority_lookup, and serial_lookup need to remain stable for the duration of the ats run but that sounds reasonable to me.

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.

2 participants