Repository navigation
♻️ Migrate MQT DDSIM to the MQT Core simulation engine - #1060
Open
burgholzer wants to merge 9 commits into
Open
burgholzer wants to merge 9 commits into
burgholzer wants to merge 9 commits into
Conversation
Keep the provider, sampling/statevector/unitary backends, V2 primitives, simulation functions and CLI over Core execution. Use QDMI for sampling and QIR, and Core direct APIs for dense results and exact DD estimation. Remove superseded native engines and package MQT DDSIM as pure Python with uv_build. Document retained contracts, removals and migration paths. Pin merged Core main during development; require a published Core release before publishing MQT DDSIM 3. Assisted-by: Codex
burgholzer
force-pushed
the
codex/core-engine
branch
from
October 27, 2026 19:03
af71d35 to
ead3c0e
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Keep one sampling backend and delegate dense results and primitives to Core. Remove legacy adapters, CLI entry points, and redundant dependency constraints. Document the v3 product with executed notebooks and trim tests to distinct integration contracts, including phase, ordering, binding, QIR, and feedback. Assisted-by: Codex
Remove the provider and update examples, API documentation, and migration instructions. Align the README requirements and development dependencies with MQT Bench while retaining the uv build backend. Assisted-by: Codex
Pin Core's owned-array, QIR simulation, and estimator-reuse stack. Remove DDSIM's duplicate QIR submission and validation code, and keep format-level fixtures in Core. Document direct Core sampling semantics and retain DDSIM public-entry-point and installed-wheel coverage. Assisted-by: Codex
Update the Core stack pin and remove format arguments from examples and installed-runtime tests. QIR text and bitcode select their profile from module metadata through Core's simulation APIs. Assisted-by: Codex
Assisted-by: Codex
Assisted-by: Codex
Assisted-by: Codex
Replace the integration-stack revision with upstream main after #2882, #2883, and #2884 merged. The Core source trees are identical. Assisted-by: Codex
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖 AI text below 🤖
Description
MQT DDSIM v3 is a pure Python package powered by MQT Core's native decision-diagram simulation engine. It accepts Qiskit, OpenQASM, compiled QIR programs, and LLVM text/bitcode with profile selection from module metadata.
sampling_simulatorbackend through directSamplingSimulatorBackend()construction. Measurements are explicit; Core owns target validation, execution, and Qiskit result reconstruction.sample,simulate, andbuild_functionality, removing DDSIM's separate submission and raw-buffer extraction helpers. Return uncollapsed statevectors and full unitaries through these functions. QIR Base/Adaptive text and bitcode support sampling and eligible state extraction without a separate format argument; executable QIR does not support full-unitary extraction.DDEstimatorwithout dense extraction. Usebackend.sampler()andbackend.estimator()for Qiskit V2 sampling primitives; the sampled estimator supports dynamic preparation.Requires Python 3.11+ and Qiskit
>=2.5,<3. Development pins merged MQT Core11b4d3965, including owned dense NumPy results, synchronous QIR simulation, and exact-estimator QCO reuse. The merged Core source tree is identical to the previously tested integration-stack tip. Before publishing MQT DDSIM 3, replace this source-build Git dependency with a suitable Core release and validate its installed wheels on the release-candidate CI matrix.Local Linux ARM64 validation:
AI assistance: Codex implemented, reviewed, tested, and documented this migration under user authorization.
Checklist
If PR contains AI-assisted content:
🤖 *AI text below* 🤖(titles are exempt).