IQM backend updates Q1-Q3 2026 - #5447
iqm-bhoffmann wants to merge 19 commits into
Conversation
Check for a split qubit topology and if multiple networks exist remove all but one. The network remaining is either the one with the most nodes or if there is a tie the one containing the qubit with the smallest index number. [SW-2176]
FIX Prevent crash when restoring a QPU quantum architecture from file without contacting a server. FIX Allow IQM C++ tests to pass with simulators returning sparse counts. Signed-off-by: Bernd Hoffmann <bernd.hoffmann@meetiqm.com>
FIX If the dynamic QA has fewer qubits than the static QA save the mapping between logical and physical qubits to the quantum architecture file. When loading such a file the mapping will be restored to ensure consistency with the adjacency map. [SW-2363] Signed-off-by: Bernd Hoffmann <bernd.hoffmann@meetiqm.com>
CHG Switch to use the URLs of V1 API. [SW-2119] CHG In V1 API the quantum computer is no longer specified in the base URL but separately. [SW-2119] CHG Adapted the mock server to provide answers for V1 API requests. [SW-2119] CHG Added automatic conversion of old cocos style URLs to new V1 API style URLs. [SW-2119] CHG Changed implementation simulating bad qubits in the mock server. Allow configuration of bad qubits via environment. CHG Updated documentation to V1 API. Explained how to specify the quantum computer. [SW-2119] CHG Extended documentation with an overview of all configuration options. Signed-off-by: Bernd Hoffmann <bernd.hoffmann@meetiqm.com>
FIX Stopped internally used map variable to grow unneccessarily with every submitted kernel. [SW-2506] FIX Use all types and not only the default implementation from the dynamic quantum architecture (DQA). [SW-2412] CHG Change the frequency of polling the status with the position in the queue. [SW-2402] CHG Improved information in the debug output of the DQA algorithm. CHG During polling reduce the output to only the status. Signed-off-by: Bernd Hoffmann <bernd.hoffmann@meetiqm.com>
Check for a split qubit topology and if multiple networks exist remove all but one. The network remaining is either the one with the most nodes or if there is a tie the one containing the qubit with the smallest index number. [SW-2176] Extend the IQM mock server to allow disabling qubits and transmons to test a split topology. Start the local mock server only when nothing is set in IQM_SERVER_URL. Signed-off-by: Bernd Hoffmann <bernd.hoffmann@meetiqm.com>
Due to changes of the central test scripts the IQM tests broke. Fixed import problems to make them run again. Manually appended the source directory to the system path so tests can access shared utility functions. Receive port number from the mock-qpu framework. Signed-off-by: peihsuan.huang <peihsuan.huang@meetiqm.com>
FIX Corrected overwriting an existing mapping file. A problem introduced by removing the file exclusive requirement. CHG Added information to the quantum architecture file about which calibration-set id was used for the dynamic quantum architecture. CHG Updated the example quantum architecture files from IQM resonance system. FIX Corrected returning an error message when a job has failed. FIX Corrected once case in merging of sub-networks in the algorithm to detect a split topology. [SW-2176] Signed-off-by: Bernd Hoffmann <bernd.hoffmann@meetiqm.com>
Added a test for the split topology algorithm. The tests are based on verified testvectors for the 20 qubit and 54 qubit architectures. The mock server for IQM was extended to be configurable at runtime to support different configurations in the same testrun. [IQM-SW-2740] Signed-off-by: iqm-bhoffmann <bernd.hoffmann@iqm.tech>
Corrected calculation of the partial trace of the density matrix. Suppress bitstrings for counts with only fractions of one shot. These are mainly rounding artifacts. Applied yapf formatting suggestions. Signed-off-by: iqm-bhoffmann <bernd.hoffmann@iqm.tech>
Merge branch 'main' of https://github.com/iqm-finland/cuda-quantum into iqm-backend-updates-q1-q3-2026 Signed-off-by: iqm-bhoffmann <bernd.hoffmann@iqm.tech>
Merge branch 'main' into iqm-backend-updates-q1-q3-2026 Adapted code from main for getting the circuit for the qubit ordering to the branch which is using the V1 API. Fixed starting the mock server for the python tests. Now all tests work and the iqm ctests are also green. Signed-off-by: iqm-bhoffmann <bernd.hoffmann@iqm.tech>
Updated documentation because of IQM domain change from "meetiqm.com" to "iqm.tech". Rewrote descriptions how to use the IQM backend. Updated the code examples for IQM to use ghz as algorithm. Added example to documentation how to use the IQM backend. Removed lines with IQM copyright messages. Signed-off-by: iqm-bhoffmann <bernd.hoffmann@iqm.tech>
Changed startup configuration of the local IQM mock-server. Now all qubits are available by default [IQM-SW-3087] Changed ctest to execute the split-topology test only on IQM mock-server. [IQM-SW-3071] Changed ctest to not use the outdated IQM_TOKENS_FILE anymore. [IQM-SW-3088] Updated mapping file examples for IQM Resonance machines. [IQM-SW-2585] Added quotes around parameter names in documentation [IQM-SW-2585] Applied lint suggestions. Signed-off-by: iqm-bhoffmann <bernd.hoffmann@iqm.tech>
Fixed handling of server response in case of an error. The handling was not updated to V1 API and was checking for a no longer existing field. [IQM-SW-3101] Signed-off-by: iqm-bhoffmann <bernd.hoffmann@iqm.tech>
Merge branch 'main' into iqm-backend-updates-q1-q3-2026 Signed-off-by: iqm-bhoffmann <bernd.hoffmann@iqm.tech>
|
Thanks @iqm-bhoffmann. Would you be able to sign the commits? |
Command Bot: Processing... |
CI Summary (
|
| Job | Result | Link |
|---|---|---|
build_and_test |
❌ failure | view |
Top-level jobs (15)
| Job | Result |
|---|---|
binaries |
⏩ skipped |
build_and_test |
❌ failure |
changes |
✅ success |
config_devdeps |
✅ success |
config_source_build |
⏩ skipped |
config_wheeldeps |
✅ success |
devdeps |
✅ success |
docker_image |
⏩ skipped |
gen_code_coverage |
⏩ skipped |
metadata |
✅ success |
python_devel_wheel |
⏩ skipped |
python_metapackages |
⏩ skipped |
python_wheels |
⏩ skipped |
source_build |
⏩ skipped |
wheeldeps |
✅ success |
⏩ Skipped jobs (8) — intentionally skipped on PR builds; run on merge_group / workflow_dispatch
| Job |
|---|
binaries |
config_source_build |
docker_image |
gen_code_coverage |
python_devel_wheel |
python_metapackages |
python_wheels |
source_build |
All sub-jobs (44) — every matrix leg, with links
| Job | Status | Link |
|---|---|---|
| Build and test (amd64, gcc12, openmpi) / Dev environment (Debug) | ❌ failure | view |
| Build and test (amd64, gcc12, openmpi) / Dev environment (Python) | ✅ success | view |
| Build and test (amd64, llvm, openmpi) / Dev environment (Debug) | ❌ failure | view |
| Build and test (amd64, llvm, openmpi) / Dev environment (Python) | ✅ success | view |
| Build and test (arm64, llvm, openmpi) / Dev environment (Debug) | ❌ failure | view |
| Build and test (arm64, llvm, openmpi) / Dev environment (Python) | ✅ success | view |
| CI Summary | ❔ in_progress | view |
| Check for stable CUDA-Q changes | ✅ success | view |
| Configure build (devdeps) | ✅ success | view |
| Configure build (source_build) | ⏩ skipped | view |
| Configure build (wheeldeps) | ✅ success | view |
| Create CUDA Quantum installer | ⏩ skipped | view |
| Create Docker images | ⏩ skipped | view |
| Create Python metapackages | ⏩ skipped | view |
| Create Python wheels | ⏩ skipped | view |
| Create shared Python development wheel | ⏩ skipped | view |
| Gen code coverage | ⏩ skipped | view |
| Load dependencies (amd64, gcc12) / Caching | ✅ success | view |
| Load dependencies (amd64, gcc12) / Finalize | ✅ success | view |
| Load dependencies (amd64, gcc12) / Metadata | ✅ success | view |
| Load dependencies (amd64, llvm) / Caching | ✅ success | view |
| Load dependencies (amd64, llvm) / Finalize | ✅ success | view |
| Load dependencies (amd64, llvm) / Metadata | ✅ success | view |
| Load dependencies (arm64, gcc12) / Caching | ✅ success | view |
| Load dependencies (arm64, gcc12) / Finalize | ✅ success | view |
| Load dependencies (arm64, gcc12) / Metadata | ✅ success | view |
| Load dependencies (arm64, llvm) / Caching | ✅ success | view |
| Load dependencies (arm64, llvm) / Finalize | ✅ success | view |
| Load dependencies (arm64, llvm) / Metadata | ✅ success | view |
| Load source build cache | ⏩ skipped | view |
| Load wheel dependencies (amd64, 12.6) / Caching | ✅ success | view |
| Load wheel dependencies (amd64, 12.6) / Finalize | ✅ success | view |
| Load wheel dependencies (amd64, 12.6) / Metadata | ✅ success | view |
| Load wheel dependencies (amd64, 13.0) / Caching | ✅ success | view |
| Load wheel dependencies (amd64, 13.0) / Finalize | ✅ success | view |
| Load wheel dependencies (amd64, 13.0) / Metadata | ✅ success | view |
| Load wheel dependencies (arm64, 12.6) / Caching | ✅ success | view |
| Load wheel dependencies (arm64, 12.6) / Finalize | ✅ success | view |
| Load wheel dependencies (arm64, 12.6) / Metadata | ✅ success | view |
| Load wheel dependencies (arm64, 13.0) / Caching | ✅ success | view |
| Load wheel dependencies (arm64, 13.0) / Finalize | ✅ success | view |
| Load wheel dependencies (arm64, 13.0) / Metadata | ✅ success | view |
| Prepare cache clean-up | ❔ in_progress | view |
| Retrieve PR info | ✅ success | view |
⚠️ Required checks (3/6) — 3 missing — declared in .github/required-checks.yml for push
| Required check | Status | Link |
|---|---|---|
| Build and test (amd64, llvm, openmpi) / Dev environment (Debug) | ❌ failure | view |
| Build and test (amd64, llvm, openmpi) / Dev environment (Python) | ✅ success | view |
| Build and test (arm64, llvm, openmpi) / Dev environment (Debug) | ❌ failure | view |
| Build and test (arm64, llvm, openmpi) / Dev environment (Python) | ✅ success | view |
| Build and test (amd64, gcc12, openmpi) / Dev environment (Debug) | ❌ failure | view |
| Build and test (amd64, gcc12, openmpi) / Dev environment (Python) | ✅ success | view |
Hello @sacpis , There is another check failing: https://github.com/NVIDIA/cuda-quantum/actions/runs/35117731906 |
I, Pei-Hsuan Huang <peihsuan.huang@meetiqm.com>, hereby add my Signed-off-by to this commit: 34ed30f Signed-off-by: Pei-Hsuan Huang <peihsuan.huang@meetiqm.com>
I, Bernd Hoffmann <bernd.hoffmann@meetiqm.com>, hereby add my Signed-off-by to this commit: 41408f1 Signed-off-by: Bernd Hoffmann <bernd.hoffmann@meetiqm.com> Signed-off-by: iqm-bhoffmann <bernd.hoffmann@iqm.tech>
Command Bot: Processing... |
Thanks @iqm-bhoffmann. I see few commits are left to be signed.
Please add |
Ignore IQM testvector data files located in `unittests/nvqpp/backends/iqm/` in the license header check. Signed-off-by: iqm-bhoffmann <bernd.hoffmann@iqm.tech>
Command Bot: Processing... |
|
Just FYI, I see this |
Compilation of several features, updates, improvements, and bug fixes from the period Q1 to Q3 2026 concerning the IQM backend. Code should be reviewed best by going over the commits as they group the changes by topic. Going over the files is more difficult as the changesets are touching the same files from multiple changesets.
Changes are: