Skip to content

✨ Adopt native multi-program QDMI jobs - #2373

Draft
burgholzer wants to merge 1 commit into
v4.1from
codex/qdmi-multi-program-adoption
Draft

✨ Adopt native multi-program QDMI jobs#2373
burgholzer wants to merge 1 commit into
v4.1from
codex/qdmi-multi-program-adoption

Conversation

@burgholzer

@burgholzer burgholzer commented Sep 4, 2026

Copy link
Copy Markdown
Member

🤖 AI text below 🤖

Description

Extract native multi-program QDMI jobs from #2226 so that batching can progress independently of payload-capability design. This uses the existing program-format enum and QDMI #509's atomic program setter, program count, and indexed results.

The C++ and Python clients accept lists of text or binary programs and preserve optional shots, byte-exact payloads, session ownership, and existing single-program execution. DDSIM currently accepts one program per native job; the model-only superconducting device does not execute jobs. A dedicated test provider exercises aggregate jobs without inventing unsupported provider lifecycle semantics.

Concurrent single-program submissions remain distinct and unchanged. SDK batching and fallback policy are separate consumers tracked in #2359, including preservation of #2349.

Fixes #2362
Refs #2359, Munich-Quantum-Software-Stack/QDMI#509.

Targets Core 4.1, not 4.0. The development dependency is pinned to QDMI #509; replace it with a released QDMI 1.4 version before release artifacts are published.

Validation

  • Native CTest suite: 3,879 passed; one existing skip.
  • Python QDMI, Qiskit, and PennyLane tests: 413 passed.
  • Python 3.11 minimum dependencies: 412 passed; one expected skip.
  • Generated stubs, repository lint, and C++ lint passed.
  • Tests cover atomic rollback, copied binary payloads, program ordering, invalid indices, indexed retrieval, optional shots, and existing lifecycle/concurrency behavior.
  • Hosted CI remains a separate gate.

AI assistance was used for extraction, implementation, tests, documentation, and this description.

Integration branch

Target v4.1 independently of the driver, metadata-cleanup, and program-capability stacks. Link provider evidence through #2359 before the corresponding standard interface is accepted.

Checklist

  • The pull request only contains commits that are focused and relevant to this change.
  • I have added appropriate tests that cover the new/changed functionality.
  • I have updated the documentation to reflect these changes.
  • I have added entries to the changelog for any noteworthy additions, changes, fixes, or removals.
  • I have added migration instructions to the upgrade guide (if needed).
  • The changes follow the project's style guidelines and introduce no new warnings.
  • The changes are fully tested and pass the CI checks.
  • I have reviewed my own code changes.

If PR contains AI-assisted content:

  • Any agent that created, edited, or submitted GitHub content was explicitly authorized for that scope, as required by our AI Usage Guidelines.
  • Every agent-authored or agent-edited public text body begins with the visible disclosure 🤖 *AI text below* 🤖 (titles are exempt).
  • I have disclosed AI assistance in the PR description.
  • I confirm that I have personally reviewed and understood all AI-generated content, and accept full responsibility for it.

@burgholzer burgholzer added feature New feature or request c++ Anything related to C++ code python Anything related to Python code QDMI Anything related to QDMI labels Sep 4, 2026
@burgholzer burgholzer self-assigned this Sep 4, 2026
@burgholzer burgholzer added this to the v4.1.0 - QDMI 1.4 / MQSF milestone Sep 4, 2026
@burgholzer
burgholzer force-pushed the codex/qdmi-multi-program-adoption branch from 239651a to b858bca Compare September 4, 2026 11:13
@mergify mergify Bot added the conflict label Sep 4, 2026
@burgholzer
burgholzer changed the base branch from main to v4.1 September 4, 2026 14:52
@burgholzer
burgholzer force-pushed the codex/qdmi-multi-program-adoption branch 2 times, most recently from 0aeaeec to 2e39198 Compare September 5, 2026 14:34
@mergify mergify Bot removed the conflict label Sep 5, 2026
Extract enum-based atomic program lists and indexed results from the payload-capability prototype. Preserve optional shots, binary ownership, single-program behavior, and concurrent execution; leave SDK consumers independent.

Assisted-by: GPT-5.6 Sol via Codex
@burgholzer
burgholzer force-pushed the codex/qdmi-multi-program-adoption branch from 2e39198 to c8b4ac3 Compare September 5, 2026 14:36
@codecov

codecov Bot commented Sep 5, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 97.71429% with 4 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/qdmi/devices/dd/Device.cpp 95.4% 3 Missing ⚠️
src/qdmi/Client.cpp 98.7% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

c++ Anything related to C++ code feature New feature or request python Anything related to Python code QDMI Anything related to QDMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

✨ Extract QDMI multi-program Client and bundled-device support

1 participant