Skip to main content

MQT Predictor - A MQT Tool for Automatic Device Selection with Device-Specific Circuit Compilation for Quantum Computing

Project description

PyPI OS License: MIT CI CD Documentation codecov

MQT Logo

MQT Predictor: Automatic Device Selection with Device-Specific Circuit Compilation for Quantum Computing

MQT Predictor is a framework that allows one to automatically select a suitable quantum device for a particular application and provides an optimized compiler for the selected device. It not only supports end-users in navigating the vast landscape of choices, it also allows to mix-and-match compiler passes from various tools to create optimized compilers that transcend the individual tools. Evaluations on more than 500 quantum circuits and seven devices have shown that—compared to Qiskit's and TKET's most optimized compilation flows—the MQT Predictor yields circuits with an expected fidelity that is on par with the best possible result that could be achieved by trying out all combinations of devices and compilers and even achieves a similar performance when considering the critical depth as an alternative figure of merit.

Therefore, MQT Predictor tackles this problem from two angles:

  1. It provides a method (based on Reinforcement Learning) that produces device-specific quantum circuit compilers by combining compilation passes from various compiler tools and learning optimized sequences of those passes with respect to a customizable figure of merit). This mix-and-match of compiler passes from various tools allows one to eliminate vendor locks and to create optimized compilers that transcend the individual tools.

  2. It provides a prediction method (based on Supervised Machine Learning) that, without performing any compilation, automatically predicts the most suitable device for a given application. This completely eliminates the manual and laborious task of determining a suitable target device and guides end-users through the vast landscape of choices without the need for quantum computing expertise.

For more details, please refer to:

Documentation

Contributors and Supporters

The Munich Quantum Toolkit (MQT) is developed by the Chair for Design Automation at the Technical University of Munich and supported by the Munich Quantum Software Company (MQSC). Among others, it is part of the Munich Quantum Software Stack (MQSS) ecosystem, which is being developed as part of the Munich Quantum Valley (MQV) initiative.

MQT Partner Logos

Thank you to all the contributors who have helped make MQT Predictor a reality!

Getting Started

mqt.predictor is available via PyPI.

(venv) $ pip install mqt.predictor

The following code gives an example on the usage:

from mqt.predictor import qcompile
from mqt.bench import get_benchmark, BenchmarkLevel

# get a benchmark circuit on algorithmic level representing the GHZ state with 5 qubits from [MQT Bench](https://github.com/munich-quantum-toolkit/bench)
qc_uncompiled = get_benchmark(benchmark="ghz", level=BenchmarkLevel.ALG, circuit_size=5)

# compile it using the MQT Predictor
qc_compiled, compilation_information, quantum_device = qcompile(
    qc_uncompiled, figure_of_merit="expected_fidelity"
)

# print the selected device and the compilation information
print(quantum_device, compilation_information)

# draw the compiled circuit
print(qc_compiled.draw())

[!NOTE] To execute the code, respective machine learning models must be trained before. Up until mqt.predictor v2.0.0, pre-trained models were provided. However, this is not feasible anymore due to the increasing number of devices and figures of merits. Instead, we now provide a detailed documentation on how to train and setup the MQT Predictor framework.**

Further documentation and examples are available at ReadTheDocs.

References

In case you are using MQT Predictor in your work, we would be thankful if you referred to it by citing the following publication:

@ARTICLE{quetschlich2025mqtpredictor,
    AUTHOR      = {N. Quetschlich and L. Burgholzer and R. Wille},
    TITLE       = {{MQT Predictor: Automatic Device Selection with Device-Specific Circuit Compilation for Quantum Computing}},
    YEAR        = {2025},
    JOURNAL     = {ACM Transactions on Quantum Computing (TQC)},
    DOI         = {10.1145/3673241},
    EPRINT      = {2310.06889},
    EPRINTTYPE  = {arxiv},
}

Acknowledgements

This project received funding from the European Research Council (ERC) under the European Union's Horizon 2020 research and innovation program (grant agreement No. 101001318), was part of the Munich Quantum Valley, which is supported by the Bavarian state government with funds from the Hightech Agenda Bayern Plus, and has been supported by the BMWK on the basis of a decision by the German Bundestag through project QuaST, as well as by the BMK, BMDW, the State of Upper Austria in the frame of the COMET program, and the QuantumReady project within Quantum Austria (managed by the FFG).

MQT Funding Footer

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mqt_predictor-2.3.0.tar.gz (2.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mqt_predictor-2.3.0-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

Details for the file mqt_predictor-2.3.0.tar.gz.

File metadata

  • Download URL: mqt_predictor-2.3.0.tar.gz
  • Upload date:
  • Size: 2.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for mqt_predictor-2.3.0.tar.gz
Algorithm Hash digest
SHA256 e86e0265bcdfdaf5254755d17480fb3bba21f7501ff862656261824d152b6199
MD5 7b6104620e0b874de59b94f0978f93a1
BLAKE2b-256 8735c36b4a51861f25d4701b77a7e605169000c52534a4a8544d86b0d0b801c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for mqt_predictor-2.3.0.tar.gz:

Publisher: cd.yml on munich-quantum-toolkit/predictor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mqt_predictor-2.3.0-py3-none-any.whl.

File metadata

  • Download URL: mqt_predictor-2.3.0-py3-none-any.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for mqt_predictor-2.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fcdb7f3e2c7fd1d7b2b9adc0f80cf55a26a10559f302f435fbd065eafb152143
MD5 4498834eab80b40c4877f0c280c8acb6
BLAKE2b-256 87a8597254c6c9170b8857ce89b9bf0225fd595a70a3101f44e1817b5b754be4

See more details on using hashes here.

Provenance

The following attestation bundles were made for mqt_predictor-2.3.0-py3-none-any.whl:

Publisher: cd.yml on munich-quantum-toolkit/predictor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page