Skip to main content

A solver for the shuttling problem in QCCD quantum computers

Project description

License: MIT PyPI version

MQT Logo

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
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.2.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.2-py3-none-any.whl (80.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mqt_ionshuttler-0.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 97c368e8b907107b999db301a8294f437269c011b5f09c8c4fab67b4bf528cd5
MD5 1c4170e26bc66dbd569055eed999e043
BLAKE2b-256 811cd767c6fc5eb25632a2fce1196baeda68143a716328c76fc7c32cc6148d5e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt_ionshuttler-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ff6ad4d29dcce58ed7f005d3ab03f7d137f372ef0df9a741c82394b88fd1dac8
MD5 8dace43f0afb55416651bd2a09e75442
BLAKE2b-256 06283498a8d4d20b626197e2fd8332e8d5dc23076dd2709cffd86eea01754d43

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