munich-quantum-toolkit / munich-quantum-toolkit/core

✨ Add a reusable QDMI device access and status checker

Open
#2,311 0 comments 0 reactions 2 assignees View on GitHub

@flowerthrower is already working on this.

Since Sep 4, 2026.

c++ feature packaging QDMI
Dominant language
C++
Stars
133
Forks
73
Avg merge
17h 34m
Merged PRs (30d)
261

Description

🤖 AI text below 🤖

Lead: @flowerthrower. Cross-repository coordination: @burgholzer.

Elevator pitch

Optional launch-time validation should reuse Core’s existing session-open and device-status semantics instead of embedding each provider in a scheduler plugin.

Current state

src/qdmi/Slurm.cpp opens the registered device through Core and accepts IDLE or BUSY. Other statuses and session errors fail. This works with released QDMI 1.3.x and is weaker than a promise of immediate execution.

Work and decisions

  • Expose a small MIT command-line check using the same shared open/status behavior; do not duplicate provider-status interpretation.
  • Separate explicit device selection from Slurm parsing so the executable itself need not link Slurm or provider SDKs directly.
  • Specify stable result diagnostics/exit codes and bounded execution.
  • Use the effective job catalogue, provider configuration, and ordinary credential chain.
  • Do not query a proposed accepting-jobs property or claim authorization/availability for another identity.
  • Keep the checker optional and independent of the scheduler design.

Dependencies and release boundary

Parent: ✨ Centralize static-license QDMI deployment and optional SPANK injection. Consumer: ✨ Add optional generic SPANK launch-time device validation. Later availability design is 💡 Design QDMI availability-based Slurm scheduling and is not a prerequisite.

Acceptance and validation

  • Fixtures cover IDLE, BUSY, other statuses, unknown device, authentication/provider failure, timeout, and cleanup.
  • No Slurm/GPL dependency enters the MIT executable/package.
  • The job-context integration proves that checker and payload see the intended same configuration, without service credential inheritance.
  • Target Core 4.1/MQSF with the shared setup and provider migrations. Include only if the safety tests pass; otherwise defer without blocking static migration.

Non-goals

Availability-based admission; QDMI #522; guaranteed task acceptance or execution time; embedding provider libraries in SPANK.

Shared validation fixture

Exercise the checker/plugin boundary in Core's common Dockerized Slurm fixture with provider configuration supplied by the integration tests. Reuse the existing open and IDLE/BUSY semantics; successful validation is not a promise of submission acceptance or prompt execution.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.