Skip to main content

A solver for the shuttling problem in QCCD quantum computers

Project description

License: MIT PyPI version

Documentation

MQT IonShuttler

MQT IonShuttler is a tool for generating shuttling schedules for trapped-ion quantum computers with a grid-type 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.

(a) Potential QCCD device with four processing zones (b) Corresponding interaction graph

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.

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


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:

  1. D. Schoenberger, S. Hillmich, M. Brandl, and R. Wille, "Using Boolean Satisfiability for Exact Shuttling in Trapped-Ion Quantum Computers," ASP-DAC, 2024.
  2. D. Schoenberger, S. Hillmich, M. Brandl, and R. Wille, "Shuttling for Scalable Trapped-Ion Quantum Computers," IEEE TCAD, 2024.
  3. 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.

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_ionshuttler-0.1.1.tar.gz (70.2 kB view details)

Uploaded Source

Built Distribution

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

mqt_ionshuttler-0.1.1-py3-none-any.whl (80.0 kB view details)

Uploaded Python 3

File details

Details for the file mqt_ionshuttler-0.1.1.tar.gz.

File metadata

  • Download URL: mqt_ionshuttler-0.1.1.tar.gz
  • Upload date:
  • Size: 70.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.10

File hashes

Hashes for mqt_ionshuttler-0.1.1.tar.gz
Algorithm Hash digest
SHA256 aa3651c8160ccb27a18e84a519f6d81e6b993322facbeb0774d7c65b0953e155
MD5 38ed1ad461ab0799335a2ecf5d2ca208
BLAKE2b-256 b6570aac9365ed6013b53f88555cc54dea3fcf1dc8e92346d1e63d07004c79ec

See more details on using hashes here.

File details

Details for the file mqt_ionshuttler-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for mqt_ionshuttler-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5a2a9e7fce1f2078f0c4d32c55aabb273ffe744df7b31666bb7abcd049c5b0c1
MD5 3626dd70f93ef4b10ff7ecff3b3eee3e
BLAKE2b-256 8b5bdbf8723641c11b0d7697cb6586469f6f9a8c7558fb52e4c332d6c6455d2b

See more details on using hashes here.

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