A solver for the shuttling problem in QCCD quantum computers
Project description
MQT IonShuttler
MQT IonShuttler is a tool for generating shuttling schedules for trapped-ion quantum computers with a grid-like Memory Zone based on the Quantum Charge Coupled Device (QCCD) architecture. It supports:
- exact shuttling schedules for small architectures with a single processing zone (PZ), and
- heuristic shuttling schedules for larger devices with one or multiple processing zones.
Figure 1: (a) Potential QCCD device with four processing zones; (b) corresponding graph abstraction.
The exact solution guarantees optimality but is limited to a single PZ, while the heuristic method scales to many qubits and PZs. In the heuristic workflow, an optional compilation feature (use_dag) allows for dynamic rescheduling of gates based on the current ion positions and dependencies, potentially reducing shuttling overhead compared to executing a fixed sequence.
MQT IonShuttler is part of the Munich Quantum Toolkit (MQT) developed by the Chair for Design Automation at the Technical University of Munich.
If you have any questions, feel free to contact us via quantum.cda@xcit.tum.de or by creating an issue on GitHub.
Installation
We strongly recommend using virtual environments.
To install MQT IonShuttler and its dependencies, you can use pip:
pip install mqt.ionshuttler
This will install the library components from PyPI, making them importable in your Python projects.
Getting Started with Example Scripts
The run_exact.py and run_heuristic.py scripts provide examples of how to use MQT IonShuttler. To run these scripts and access the example configuration files, it's best to clone the repository:
git clone [https://github.com/cda-tum/mqt-ion-shuttler.git](https://github.com/cda-tum/mqt-ion-shuttler.git)
cd mqt-ion-shuttler
Then, set up a virtual environment and install the package (which also installs dependencies):
python3 -m venv .venv
. .venv/bin/activate # Or .\.venv\Scripts\activate on Windows
pip install . # Installs the package and its dependencies
# For development, you might prefer: pip install -e . (editable install)
Once this is done, you can run the example scripts as shown below. These scripts currently import modules using from src... and are designed to be run from the root of the cloned repository after the local installation.
Exact Solution (single PZ)
python3 -m venv .venv
. .venv/bin/activate
pip install .
python3 run_exact.py --help
# Example
python3 run_exact.py algorithms_exact/qft_06.json
The script supports an additional --plot argument to visualise the result. All parameters are documented via --help.
Architectures and algorithms are specified in JSON files—see the examples in algorithms_exact/.
Heuristic Solution (single & multiple PZs)
python3 -m venv .venv
. .venv/bin/activate
pip install .
python3 run_heuristic.py --help
# Example with 60 qubits executed on 4 PZs
python3 run_heuristic.py algorithms_heuristic/qft_60_4pzs.json
Architectures and algorithms are specified in JSON files—see the examples in algorithms_heuristic/.
References
This implementation is based on the following publications:
- D. Schoenberger, S. Hillmich, M. Brandl, and R. Wille, "Using Boolean Satisfiability for Exact Shuttling in Trapped-Ion Quantum Computers," ASP-DAC, 2024.
- D. Schoenberger, S. Hillmich, M. Brandl, and R. Wille, "Shuttling for Scalable Trapped-Ion Quantum Computers," IEEE TCAD, 2024.
- D. Schoenberger, R. Wille, "Orchestrating Multi-Zone Shuttling in Trapped-Ion Quantum Computers".
Acknowledgements
The Munich Quantum Toolkit has been supported by the European Union's Horizon 2020 research and innovation programme (DA QC, grant agreement No. 101001318 and MILLENION, grant agreement No. 101114305), 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.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mqt_ionshuttler-0.1.tar.gz.
File metadata
- Download URL: mqt_ionshuttler-0.1.tar.gz
- Upload date:
- Size: 69.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c468bdbea652601acc5acf5815234d06a15d70ddac5f959f6e8a9d92cb5b8870
|
|
| MD5 |
0c964b6a4e72d3bbf5d17050f3c4db15
|
|
| BLAKE2b-256 |
b492201d331303b25ac6333e5c4302e50f0f59aa5cb0808e4710ed85a59f234b
|
File details
Details for the file mqt_ionshuttler-0.1-py3-none-any.whl.
File metadata
- Download URL: mqt_ionshuttler-0.1-py3-none-any.whl
- Upload date:
- Size: 79.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ce092c4d081664e3588d6c22ac7bf8a0ee7a408b97d24fbe14fa7c0d8972e9b
|
|
| MD5 |
c8ba802dc10940fc8acf8ff7ebf6ffe4
|
|
| BLAKE2b-256 |
3b0a3964a4fed1b5a5052dc77f35e753d9f5048562459898d1ef6cc0a1e4a0ed
|