QDMI in the MQT¶
The Quantum Device Management Interface (QDMI) provides a standardized interface for describing and interacting with quantum devices. MQT Core supplies a driver, C++ and Python client interfaces, device implementations, and SDK and HPC integrations.
What QDMI standardizes¶
QDMI defines a C interface between software clients and device implementations. Its specification covers three parts of an interaction:
Sessions: configure and initialize access to a device.
Queries: inspect device properties, sites, supported operations, and available calibration data.
Jobs: set a program and its parameters, submit it, check its status, cancel it when supported, and retrieve results.
A QDMI device can represent a simulator, a physical QPU, or a cloud service. The interface exposes each device’s capabilities and accepted program formats; clients must use those queries to prepare compatible jobs.
How MQT Core uses QDMI¶
Layer |
Responsibility |
|---|---|
Query a target’s capabilities and compile a compatible program. |
|
Load device libraries and provide C++ and Python access to sessions, queries, and jobs. |
|
Device implementation |
Translate QDMI calls into simulator operations or a provider’s API. |
Connect user workflows and resource management to QDMI devices. |
Compilation and submission remain separate: compile_program prepares a
CompiledProgram; submit_program submits it to a matching execution device.
The compilation and execution guide introduces
this workflow. The
hardware compilation tutorial shows
both steps with bundled DDSIM; the QIR guide also
retrieves QIR output records through the same job API.
Work through the QDMI tutorial to discover capabilities, reuse a compiled program, and relate shots, counts, and simulator states.
Choose a guide¶
Run a program: start with Compile and execute Shor’s algorithm and the DDSIM device, which executes supported OpenQASM and QIR.
Discover or configure devices: use the MQT Core’s QDMI Driver Implementation and QDMI device configuration guides.
Compile for hardware: the superconducting models supply topology, native operations, and calibration. They do not execute programs.
Use another interface: connect through Qiskit, PennyLane, or Slurm.
Implement a device: follow the QDMI device interface and use MQT Core’s bundled devices as implementation examples.
Further reading and device implementations¶
The QDMI specification and examples are the reference for implementing the interface. These case studies explain how that interface maps to real services and hardware:
Amazon Braket: Standardizing Access to Heterogeneous Quantum Backends treats the cloud service as one QDMI device, with backend selection and a job lifecycle covering authentication, submission, and result retrieval. It also discusses constraints imposed by the underlying service.
IQM systems: Practical HPCQC Integration with QDMI describes capability and calibration queries, job handling, Qiskit workflows, and Slurm integration for cloud and on-premise deployment. The QDMI-on-IQM implementation provides the corresponding device library.
These integrations share the QDMI boundary while retaining provider-specific program formats, authentication, and scheduling constraints. See QDMI device configuration to register an external device library with MQT Core.