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

Compiler

Query a target’s capabilities and compile a compatible program.

Driver and client interfaces

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.

SDK adapters and Slurm integration

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

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:

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.