Skip to content

Commit b805b63

Browse files
❤️ Add support option (#431)
## Description This PR adds support information to the README and the documentation. For more information, see munich-quantum-toolkit/.github#49. ## Checklist: - [x] The pull request only contains commits that are focused and relevant to this change. - [x] ~I have added appropriate tests that cover the new/changed functionality.~ - [x] I have updated the documentation to reflect these changes. - [x] ~I have added entries to the changelog for any noteworthy additions, changes, fixes, or removals.~ - [x] ~I have added migration instructions to the upgrade guide (if needed).~ - [x] The changes follow the project's style guidelines and introduce no new warnings. - [x] The changes are fully tested and pass the CI checks. - [x] I have reviewed my own code changes. --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 1d835bd commit b805b63

4 files changed

Lines changed: 236 additions & 131 deletions

File tree

README.md

Lines changed: 93 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -8,38 +8,44 @@
88

99
<p align="center">
1010
<a href="https://mqt.readthedocs.io">
11-
<picture>
12-
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/munich-quantum-toolkit/.github/refs/heads/main/docs/_static/logo-mqt-dark.svg" width="60%">
13-
<img src="https://raw.githubusercontent.com/munich-quantum-toolkit/.github/refs/heads/main/docs/_static/logo-mqt-light.svg" width="60%" alt="MQT Logo">
14-
</picture>
11+
<picture>
12+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/munich-quantum-toolkit/.github/refs/heads/main/docs/_static/logo-mqt-dark.svg" width="60%">
13+
<img src="https://raw.githubusercontent.com/munich-quantum-toolkit/.github/refs/heads/main/docs/_static/logo-mqt-light.svg" width="60%" alt="MQT Logo">
14+
</picture>
1515
</a>
1616
</p>
1717

18-
# MQT Predictor: Automatic Device Selection with Device-Specific Circuit Compilation for Quantum Computing
18+
# MQT Predictor - Automatic Device Selection with Device-Specific Circuit Compilation for Quantum Computing
1919

2020
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.
21-
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.
21+
It is part of the [_Munich Quantum Toolkit (MQT)_](https://mqt.readthedocs.io).
22+
23+
<p align="center">
24+
<a href="https://mqt.readthedocs.io/projects/predictor">
25+
<img width=30% src="https://img.shields.io/badge/documentation-blue?style=for-the-badge&logo=read%20the%20docs" alt="Documentation" />
26+
</a>
27+
</p>
28+
29+
## Key Features
30+
31+
MQT Predictor supports end-users in navigating the vast landscape of choices by allowing them to mix-and-match compiler passes from various tools to create optimized compilers that transcend the individual tools.
2232
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.
2333

2434
Therefore, MQT Predictor tackles this problem from two angles:
2535

26-
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.
36+
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.
37+
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.
2738

28-
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.
39+
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.
40+
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.
2941

3042
<p align="center">
3143
<picture>
3244
<img src="docs/_static/problem.png" width="100%">
3345
</picture>
3446
</p>
3547

36-
For more details, please refer to:
37-
38-
<p align="center">
39-
<a href="https://mqt.readthedocs.io/projects/predictor">
40-
<img width=30% src="https://img.shields.io/badge/documentation-blue?style=for-the-badge&logo=read%20the%20docs" alt="Documentation" />
41-
</a>
42-
</p>
48+
If you have any questions, feel free to create a [discussion](https://github.com/munich-quantum-toolkit/predictor/discussions) or an [issue](https://github.com/munich-quantum-toolkit/predictor/issues) on [GitHub](https://github.com/munich-quantum-toolkit/predictor).
4349

4450
## Contributors and Supporters
4551

@@ -48,25 +54,43 @@ Among others, it is part of the [Munich Quantum Software Stack (MQSS)](https://w
4854

4955
<p align="center">
5056
<picture>
51-
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/munich-quantum-toolkit/.github/refs/heads/main/docs/_static/mqt-logo-banner-dark.svg" width="90%">
52-
<img src="https://raw.githubusercontent.com/munich-quantum-toolkit/.github/refs/heads/main/docs/_static/mqt-logo-banner-light.svg" width="90%" alt="MQT Partner Logos">
57+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/munich-quantum-toolkit/.github/refs/heads/main/docs/_static/mqt-logo-banner-dark.svg" width="90%">
58+
<img src="https://raw.githubusercontent.com/munich-quantum-toolkit/.github/refs/heads/main/docs/_static/mqt-logo-banner-light.svg" width="90%" alt="MQT Partner Logos">
5359
</picture>
5460
</p>
5561

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

5864
<p align="center">
59-
<a href="https://github.com/munich-quantum-toolkit/predictor/graphs/contributors">
60-
<img src="https://contrib.rocks/image?repo=munich-quantum-toolkit/predictor" />
61-
</a>
65+
<a href="https://github.com/munich-quantum-toolkit/predictor/graphs/contributors">
66+
<img src="https://contrib.rocks/image?repo=munich-quantum-toolkit/predictor" alt="Contributors to munich-quantum-toolkit/predictor" />
67+
</a>
68+
</p>
69+
70+
The MQT will remain free, open-source, and permissively licensed—now and in the future.
71+
We are firmly committed to keeping it open and actively maintained for the quantum computing community.
72+
73+
To support this endeavor, please consider:
74+
75+
- Starring and sharing our repositories: https://github.com/munich-quantum-toolkit
76+
- Contributing code, documentation, tests, or examples via issues and pull requests
77+
- Citing the MQT in your publications (see [Cite This](#cite-this))
78+
- Citing our research in your publications (see [References](https://mqt.readthedocs.io/projects/predictor/en/latest/references.html))
79+
- Using the MQT in research and teaching, and sharing feedback and use cases
80+
- Sponsoring us on GitHub: https://github.com/sponsors/munich-quantum-toolkit
81+
82+
<p align="center">
83+
<a href="https://github.com/sponsors/munich-quantum-toolkit">
84+
<img width=20% src="https://img.shields.io/badge/Sponsor-white?style=for-the-badge&logo=githubsponsors&labelColor=black&color=blue" alt="Sponsor the MQT" />
85+
</a>
6286
</p>
6387

6488
## Getting Started
6589

6690
`mqt.predictor` is available via [PyPI](https://pypi.org/project/mqt.predictor/).
6791

6892
```console
69-
(venv) $ pip install mqt.predictor
93+
(.venv) $ pip install mqt.predictor
7094
```
7195

7296
The following code gives an example on the usage:
@@ -75,54 +99,78 @@ The following code gives an example on the usage:
7599
from mqt.predictor import qcompile
76100
from mqt.bench import get_benchmark, BenchmarkLevel
77101

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

81-
# compile it using the MQT Predictor
105+
# Compile it using the MQT Predictor
82106
qc_compiled, compilation_information, quantum_device = qcompile(
83-
qc_uncompiled, figure_of_merit="expected_fidelity"
107+
qc=qc_uncompiled,
108+
figure_of_merit="expected_fidelity",
84109
)
85110

86-
# print the selected device and the compilation information
111+
# Print the selected device and the compilation information
87112
print(quantum_device, compilation_information)
88113

89-
# draw the compiled circuit
114+
# Draw the compiled circuit
90115
print(qc_compiled.draw())
91116
```
92117

93118
> [!NOTE]
94119
> To execute the code, respective machine learning models must be trained before.
95-
> Up until mqt.predictor v2.0.0, pre-trained models were provided. However, this is not feasible anymore due to the
96-
> increasing number of devices and figures of merits. Instead, we now provide a detailed documentation on how to train
97-
> and setup the MQT Predictor framework.\*\*
120+
> Up until mqt.predictor v2.0.0, pre-trained models were provided.
121+
> However, this is not feasible anymore due to the increasing number of devices and figures of merits.
122+
> Instead, we now provide a detailed documentation on how to train and setup the MQT Predictor framework.
123+
124+
**Detailed documentation and examples are available at [ReadTheDocs](https://mqt.readthedocs.io/projects/predictor).**
125+
126+
## System Requirements
98127

99-
**Further documentation and examples are available at [ReadTheDocs](https://mqt.readthedocs.io/projects/predictor).**
128+
MQT Predictor can be installed on all major operating systems with all supported Python versions.
129+
Building (and running) is continuously tested under Linux, macOS, and Windows using the [latest available system versions for GitHub Actions](https://github.com/actions/runner-images).
130+
131+
## Cite This
132+
133+
Please cite the work that best fits your use case.
134+
135+
### MQT Predictor (the tool)
136+
137+
When citing the software itself or results produced with it, cite the MQT Predictor paper:
138+
139+
```bibtex
140+
@article{quetschlich2025mqtpredictor,
141+
title = {{MQT Predictor: Automatic Device Selection with Device-Specific Circuit Compilation for Quantum Computing}},
142+
author = {Quetschlich, Nils and Burgholzer, Lukas and Wille, Robert},
143+
year = {2025},
144+
journal = {ACM Transactions on Quantum Computing (TQC)},
145+
doi = {10.1145/3673241},
146+
eprint = {2310.06889},
147+
eprinttype = {arxiv}
148+
}
149+
```
100150

101-
## References
151+
### The Munich Quantum Toolkit (the project)
102152

103-
In case you are using MQT Predictor in your work, we would be thankful if you referred to it by citing the following publication:
153+
When discussing the overall MQT project or its ecosystem, cite the MQT Handbook:
104154

105155
```bibtex
106-
@ARTICLE{quetschlich2025mqtpredictor,
107-
AUTHOR = {N. Quetschlich and L. Burgholzer and R. Wille},
108-
TITLE = {{MQT Predictor: Automatic Device Selection with Device-Specific Circuit Compilation for Quantum Computing}},
109-
YEAR = {2025},
110-
JOURNAL = {ACM Transactions on Quantum Computing (TQC)},
111-
DOI = {10.1145/3673241},
112-
EPRINT = {2310.06889},
113-
EPRINTTYPE = {arxiv},
156+
@inproceedings{mqt,
157+
title = {The {{MQT}} Handbook: {{A}} Summary of Design Automation Tools and Software for Quantum Computing},
158+
shorttitle = {{The MQT Handbook}},
159+
author = {Wille, Robert and Berent, Lucas and Forster, Tobias and Kunasaikaran, Jagatheesan and Mato, Kevin and Peham, Tom and Quetschlich, Nils and Rovara, Damian and Sander, Aaron and Schmid, Ludwig and Schoenberger, Daniel and Stade, Yannick and Burgholzer, Lukas},
160+
year = 2024,
161+
booktitle = {IEEE International Conference on Quantum Software (QSW)},
162+
doi = {10.1109/QSW62656.2024.00013},
163+
eprint = {2405.17543},
164+
eprinttype = {arxiv},
165+
addendum = {A live version of this document is available at \url{https://mqt.readthedocs.io}}
114166
}
115167
```
116168

117169
---
118170

119171
## Acknowledgements
120172

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

127175
<p align="center">
128176
<picture>

docs/index.md

Lines changed: 31 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Welcome to MQT Predictor's documentation!
22

3-
MQT Predictor is a tool for Automatic Device Selection with Device-Specific Circuit Compilation for Quantum Computing developed as part of the [Munich Quantum Toolkit](https://mqt.readthedocs.io) (_MQT_).
3+
MQT Predictor is a tool for automatic device selection with device-specific circuit compilation for quantum computing.
4+
It is part of the _{doc}`Munich Quantum Toolkit (MQT) <mqt:index>`_.
45

56
From a user's perspective, the framework works as follows:
67

@@ -12,25 +13,26 @@ The compiled circuit is returned together with the compilation information and t
1213

1314
The MQT Predictor framework is based on two main components:
1415

15-
- An [Automatic Device Selection](device_selection.md) component that predicts the most suitable device for a given quantum circuit and figure of merit.
16-
- A [Device-Specific Circuit Compilation](compilation.md) component that compiles a given quantum circuit for a given device.
16+
- An {doc}`Automatic Device Selection <device_selection>` component that predicts the most suitable device for a given quantum circuit and figure of merit.
17+
- A {doc}`Device-Specific Circuit Compilation <compilation>` component that compiles a given quantum circuit for a given device.
1718

18-
Combining these two components, the framework can be used to automatically compile a given quantum circuit for the most suitable device optimizing a [customizable figure of merit](figure_of_merit.md).
19-
How to install the framework is described in the [installation](installation.md) section, how to set it up in the [setup](setup.md) section, and how to use it in the [quickstart](quickstart.md) section.
19+
Combining these two components, the framework can be used to automatically compile a given quantum circuit for the most suitable device optimizing a {doc}`customizable figure of merit <figure_of_merit>`.
20+
How to install the framework is described in the {doc}`installation section <installation>`, how to set it up in the {doc}`setup section <setup>` section, and how to use it in the {doc}`quickstart section <quickstart>` section.
2021

21-
If you are interested in the theory behind MQT Predictor, have a look at the publications in the [references list](references.md).
22+
If you are interested in the theory behind MQT Predictor, have a look at the publications in the {doc}`references list <references>`.
2223

2324
---
2425

2526
```{toctree}
26-
:hidden: true
27+
:hidden:
2728
2829
self
2930
```
3031

3132
```{toctree}
3233
:caption: User Guide
33-
:glob: true
34+
:glob:
35+
:hidden:
3436
:maxdepth: 1
3537
3638
installation
@@ -44,20 +46,21 @@ references
4446

4547
```{toctree}
4648
:caption: Developers
47-
:glob: true
49+
:glob:
50+
:hidden:
4851
:maxdepth: 1
4952
5053
contributing
5154
development_guide
5255
support
5356
```
5457

55-
````{only} html
58+
```{only} html
5659
## Contributors and Supporters
57-
The _[Munich Quantum Toolkit (MQT)](https://mqt.readthedocs.io)_ is developed by the [Chair for Design Automation](https://www.cda.cit.tum.de/) at the [Technical University of Munich](https://www.tum.de/)
58-
and supported by the [Munich Quantum Software Company (MQSC)](https://munichquantum.software).
59-
Among others, it is part of the [Munich Quantum Software Stack (MQSS)](https://www.munich-quantum-valley.de/research/research-areas/mqss) ecosystem,
60-
which is being developed as part of the [Munich Quantum Valley (MQV)](https://www.munich-quantum-valley.de) initiative.
60+
61+
The _[Munich Quantum Toolkit (MQT)](https://mqt.readthedocs.io)_ is developed by the [Chair for Design Automation](https://www.cda.cit.tum.de/) at the [Technical University of Munich](https://www.tum.de/) and supported by the [Munich Quantum Software Company (MQSC)](https://munichquantum.software).
62+
Among others, it is part of the [Munich Quantum Software Stack (MQSS)](https://www.munich-quantum-valley.de/research/research-areas/mqss) ecosystem, which is being developed as part of the [Munich Quantum Valley (MQV)](https://www.munich-quantum-valley.de) initiative.
63+
6164
<div style="margin-top: 0.5em">
6265
<div class="only-light" align="center">
6366
<img src="https://raw.githubusercontent.com/munich-quantum-toolkit/.github/refs/heads/main/docs/_static/mqt-logo-banner-light.svg" width="90%" alt="MQT Banner">
@@ -66,26 +69,27 @@ which is being developed as part of the [Munich Quantum Valley (MQV)](https://ww
6669
<img src="https://raw.githubusercontent.com/munich-quantum-toolkit/.github/refs/heads/main/docs/_static/mqt-logo-banner-dark.svg" width="90%" alt="MQT Banner">
6770
</div>
6871
</div>
72+
6973
Thank you to all the contributors who have helped make MQT Predictor a reality!
74+
7075
<p align="center">
7176
<a href="https://github.com/munich-quantum-toolkit/predictor/graphs/contributors">
7277
<img src="https://contrib.rocks/image?repo=munich-quantum-toolkit/predictor" />
7378
</a>
7479
</p>
7580
76-
## Cite This
81+
The MQT will remain free, open-source, and permissively licensed—now and in the future.
82+
We are firmly committed to keeping it open and actively maintained for the quantum computing community.
7783
78-
If you want to cite MQT Predictor, please use the following BibTeX entry:
84+
To support this endeavor, please consider:
7985
80-
```bibtex
81-
@ARTICLE{quetschlich2025mqtpredictor,
82-
AUTHOR = {N. Quetschlich and L. Burgholzer and R. Wille},
83-
TITLE = {{MQT Predictor: Automatic Device Selection with Device-Specific Circuit Compilation for Quantum Computing}},
84-
YEAR = {2025},
85-
JOURNAL = {ACM Transactions on Quantum Computing (TQC)},
86-
DOI = {10.1145/3673241},
87-
EPRINT = {2310.06889},
88-
EPRINTTYPE = {arxiv},
89-
}
86+
- Starring and sharing our repositories: [https://github.com/munich-quantum-toolkit](https://github.com/munich-quantum-toolkit)
87+
- Contributing code, documentation, tests, or examples via issues and pull requests
88+
- Citing the MQT in your publications (see {doc}`References <references>`)
89+
- Using the MQT in research and teaching, and sharing feedback and use cases
90+
- Sponsoring us on GitHub: [https://github.com/sponsors/munich-quantum-toolkit](https://github.com/sponsors/munich-quantum-toolkit)
91+
92+
<p align="center">
93+
<iframe src="https://github.com/sponsors/munich-quantum-toolkit/button" title="Sponsor munich-quantum-toolkit" height="32" width="114" style="border: 0; border-radius: 6px;"></iframe>
94+
</p>
9095
```
91-
````

0 commit comments

Comments
 (0)