This repository contains a framework for developing and benchmarking Quantum Mini-Apps, which are small, self-contained applications designed to evaluate the performance of quantum computing systems and algorithms.
The Quantum Mini-Apps framework provides a modular and extensible architecture for defining and executing quantum computing motifs, which are fundamental building blocks or patterns of quantum algorithms. The framework leverages the power of Qiskit for quantum circuit simulation and Dask for parallel and distributed execution.
The main components of the framework are:
-
Mini-Apps: Mini-Apps are high-level applications that combine one or more motifs to perform a specific quantum computing task or benchmark. A motif captures reoccuring executing patterns. For example, the Circuit Execution mini-app executes a quantum circuit on a quantum simulator or hardware backend.
-
Executor: The executor component manages the execution of motifs on different computing environments, such as local machines, clusters, or cloud resources. It supports different execution backends, including Dask and Ray.
To get started with the Quantum Mini-Apps framework, follow these steps:
- Clone the repository:
git clone https://github.com/radical-cybertools/quantum-mini-apps.git
- Install the required dependencies:
cd quantum-mini-apps
pip install -r requirements.txt
export PYTHONPATH=$PWD/src:$PYTHONPATH ### Add this statement to shell startup script (like .bashrc)
- Run the provided example Mini-App:
python src/mini_apps/quantum_simulation/circuit_execution/ce_local.py
This will execute the QuantumSimulation
Mini-App with the default configuration, which runs a circuit execution motif on a local Dask cluster.
To run on Perlmutter, follow Using Dask on Perlmutter to provision dask cluster, and run python mini-apps/quantum-simulation/ce_perlmutter.py
against the running Perlmutter dask cluster.
Currently the following Motifs were implemented
Circuit Execution Circuit Cutting State Vector Mini-Apps
Contributions to the Quantum Mini-Apps framework are welcome! If you encounter any issues or have suggestions for improvements, please open an issue or submit a pull request.
To customize the framework or develop your own Mini-Apps/Motifs, you can extend the base Motif class which provides executor as an abstraction for executing the mini-apps.
The following Mini-Apps are currently implemented
The Quantum Simulation mini-app implements following motifs
This project is licensed under the MIT License.