MQT Core DD-based Simulator QDMI Device

Objective

MQT Core provides a QDMI device that is powered by a classical quantum circuit simulator based on decision diagrams (see the documentation of the DD Package). This functionality is exposed through the QDMI interface as a device, which can be used to classically simulate quantum programs.

Capabilities

The simulator device supports all operations that our MQT Core IR supports and takes programs in either OpenQASM 2 or OpenQASM 3 format. It can either be used for performing weak simulation, i.e., sampling from the distribution produced by the circuit, or for performing strong simulation, i.e., computing a representation of the full state vector. To switch between these two modes, either set the QDMI_DEVICE_JOB_PARAMETER_SHOTSNUM parameter to the desired number of shots for weak simulation or to 0 for strong simulation.

Under the hood, the QDMI device uses the MQT Core OpenQASM parser (see qasm3::Importer::imports()) to parse the program into a qc::QuantumComputation object. That circuit is then passed either to the dd::sample() or dd::simulate() function, depending on the mode. Consult the respective documentation for more details and limitations.

The device implements the full QDMI job interface (except for the QDMI_JOB_RESULT_SHOTS result format not supported by the simulator).