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

✨ Centralize static-license QDMI deployment and optional SPANK injection

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

@flowerthrower is already working on this.

Since Sep 4, 2026.

documentation feature 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

Cluster administrators need one maintained Slurm setup and one authoritative guide. Provider repositories should supply their catalogue and credential instructions rather than duplicate scheduler logic and leave users unsure which runtime to install.

Current state

Core already supplies qdmi::slurm::openDeviceFromLicense, Python bindings, docs/qdmi/slurm.md, and test/slurm. Braket SPANK injects configuration references. IQM SPANK additionally embeds the provider and validates sessions at launch.

Work and decisions

  • Make Core the owner of static-license selection, optional generic configuration injection, and shared Slurm fixtures.
  • Keep ordinary QDMI 1.3.x support; neither replaceable drivers nor new availability metadata is required.
  • Give the injection component a source-only GPL boundary; keep Core runtime and PyPI artifacts independent of Slurm/GPL code.
  • Migrate both providers to the shared component and guide, retaining only provider installation, catalogue, credentials, and examples.
  • Do not retain legacy provider plugins after migration. If the optional generic access/status check is not ready, remove early validation and document that behavior explicitly.
  • Treat licenses as scheduler accounting/selection, not provider authorization or proof of allocation.

Dependencies and release boundary

Current implementation: src/qdmi/Slurm.cpp, bindings/qdmi/slurm.cpp, docs/qdmi/slurm.md, test/slurm. Optional launch check: ✨ Add a reusable QDMI device access and status checker and ✨ Add optional generic SPANK launch-time device validation. Availability design: 💡 Design QDMI availability-based Slurm scheduling.

Acceptance and validation

  • An installed Core environment and a provider catalogue work without SPANK.
  • Optional injection behaves consistently for both providers, respects documented overrides, and does not leak service credentials.
  • Each documented deployment chooses its runtime/catalogue explicitly and does not require an unnecessary second runtime.
  • The shared SPANK-only build needs no LLVM or provider SDK build.
  • Target Core 4.1/MQSF with the shared setup and provider migrations.

Non-goals

Availability-based scheduling; QDMI 1.4 as a prerequisite; allocating cloud reservations; a Slurm authorization layer; retaining parallel legacy SPANK implementations.

Shared deployment fixture

Maintain one Dockerized Slurm deployment/test setup in Core. Existing provider repositories consume it with their catalogue and provider configuration rather than maintaining scheduler implementations or independent cluster setup recipes. Cover SPANK-free static selection, optional injection, both runtime/catalogue deployment choices, and both Qiskit and PennyLane. Keep provider installation and credentials in provider documentation; Core #2312 is the authoritative scheduler guide.

Sub-issues

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.