munich-quantum-toolkit / munich-quantum-toolkit/core
✨ Adopt native multi-program QDMI jobs across Core and SDK plugins
@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
Submit an ordered program list through one QDMI job without making batching wait for the unsettled execution-capability model. SDK users should benefit where providers support the aggregate contract and keep concurrent single-program execution elsewhere.
Current state
QDMI #509 is now independently based on v1.4 and retains the existing program-format enum. Core #2373 extracts the low-level adoption from #2226 onto v4.1. Qiskit and PennyLane consumers remain separate follow-ups; #2349 independently improves concurrent single-program PennyLane submission.
Work and decisions
- QDMI #509 uses the existing program-format enum without a descriptor prerequisite.
- Review and land Core #2373: APIs, bindings, bundled-device support, and indexed results extracted from #2226.
- Implement Qiskit and PennyLane consumers independently after the low-level contract is available.
- Validate the provider contract in IQM and Braket; support may remain single-program when aggregate semantics cannot be preserved.
- Preserve one shared optional shot setting, ordered result indices, aggregate lifecycle, and existing byte-exact submission. Atomic setter replacement does not imply atomic execution by remote hardware.
Dependencies and release boundary
Standard: https://github.com/Munich-Quantum-Software-Stack/QDMI/pull/509. Core implementation: #2373; extraction source: #2226. Preserve concurrency work in #2349. Release coordination: #2093.
Acceptance and validation
- Each child has focused tests and can merge without payload-capability metadata.
- Native batches and concurrent single-program fallback produce the same ordered SDK results.
- A failed program, cancellation, retrieval, and unsupported cardinality have documented behavior.
- Core 4.1 and provider releases use released QDMI dependencies; development pins are not release pins.
Non-goals
New format descriptors; payload/classical capability design; arbitrary per-program options or partial-result semantics; simulated native batching that violates the provider contract.
Provider contract evidence
Before accepting QDMI #509, link a working Core consumer plus at least one existing provider demonstration; prefer both where applicable. The evidence must cover aggregate identity/lifecycle, indexed results, cancellation, failure, and retrieval—not just submission of a list. Providers without that contract retain concurrent single-program fallback. An SDK batch convenience API alone is not proof of a native aggregate job.
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.