Skip to main content

A solver for the shuttling problem in QCCD quantum computers

Project description

License: MIT PyPI version

MQT Banner

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.

(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.


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.tar.gz (69.6 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-py3-none-any.whl (79.8 kB view details)

Uploaded Python 3

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

Hashes for mqt_ionshuttler-0.1.tar.gz
Algorithm Hash digest
SHA256 c468bdbea652601acc5acf5815234d06a15d70ddac5f959f6e8a9d92cb5b8870
MD5 0c964b6a4e72d3bbf5d17050f3c4db15
BLAKE2b-256 b492201d331303b25ac6333e5c4302e50f0f59aa5cb0808e4710ed85a59f234b

See more details on using hashes here.

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

Hashes for mqt_ionshuttler-0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3ce092c4d081664e3588d6c22ac7bf8a0ee7a408b97d24fbe14fa7c0d8972e9b
MD5 c8ba802dc10940fc8acf8ff7ebf6ffe4
BLAKE2b-256 3b0a3964a4fed1b5a5052dc77f35e753d9f5048562459898d1ef6cc0a1e4a0ed

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