munich-quantum-toolkit / munich-quantum-toolkit/core
💡 Design QDMI availability-based Slurm scheduling
@burgholzer is already working on this.
Since Sep 4, 2026.
- Dominant language
- C++
- Stars
- 133
- Forks
- 73
- Avg merge
- 17h 34m
- Merged PRs (30d)
- 261
Description
🤖 AI text below 🤖
Elevator pitch
Avoid allocating costly cluster resources when useful QPU access is implausible, while keeping provider facts separate from cluster policy. Accepting a queued submission is not the same as executing promptly or granting access to another principal.
Current state
Core #2310 proposed license-only reservations, QDMI #522 proposed an accepting-jobs boolean, and Braket #28 proposed provider mappings. These are design inputs, not settled contracts. Static licenses and optional launch-time checks can ship independently.
Work and decisions
- Define submission acceptance, execution readiness, expected waiting, and administrator admission policy separately.
- Determine whose credentials/project/reservation the monitor observes and when those observations apply to jobs using other identities.
- Specify known-negative, unknown, permission failure, timeout, stale observations, service failure, recovery, and ownership behavior.
- Compare local license-only reservations with other established Slurm mechanisms; do not use Slurm Dynamic Licenses as a generic name for this service.
- Cover running jobs, administrator reservations, polling races, multiple service instances, and QAN/service-node placement.
- Collect QDMI, Braket, and IQM evidence before choosing properties or a synchronizer algorithm.
- Keep #2310 implementation blocked and unscheduled until the design is approved.
Dependencies and release boundary
Independent static work: ✨ Centralize static-license QDMI deployment and optional SPANK injection. Existing design inputs: #2310, https://github.com/Munich-Quantum-Software-Stack/QDMI/issues/522, https://github.com/munich-quantum-software/amazon-braket-qdmi-device/issues/28. This is a design issue; implementation has no committed release milestone.
Acceptance and validation
- A decision record separates facts, policy, credentials, scheduler state, and access control.
- Failure/recovery timelines demonstrate that unknown or stale data does not silently publish a guarantee.
- A Slurm experiment validates the selected mechanism with pending and already-running jobs.
- Child issues identify the smallest generic interface and provider mappings needed, or document why no new property is required.
Non-goals
Blocking static Slurm centralization; promising instantaneous availability or reservations; implementing the current boolean proposal without review; QDMI v2 stack changes.
Required counterexamples
Use explicit counterexamples: a service may accept queued submissions outside an execution window; an online or BUSY device may reject further submissions; an IDLE device may still deny a particular principal. Queue depth and IDLE/BUSY alone do not establish submission acceptance. Distinguish observed provider facts, identity/access, execution readiness, and administrator admission policy. Test unknown/stale observations and recovery without presenting a snapshot as a reservation.
Sub-issues
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.