Skip to main content

Python bindings for Maestro - A unified interface for quantum circuit simulation

Project description

Maestro: The Interface to Quantum Circuit Simulation

Built and tested on Ubuntu

Maestro is a unified interface and intelligent orchestration layer for quantum circuit simulation. It automates the complexity of selecting and configuring simulators, enabling researchers and developers to execute quantum circuits efficiently across CPUs, GPUs, and distributed HPC environments without manual tuning.

Key Features

Maestro addresses the fragmentation of the current simulator ecosystem by providing a single entry point to various simulation methods.

  • Unified Abstraction Layer: Write your circuit once (e.g., in Qiskit) and Maestro compiles it to the native format of the target backend.
  • Intelligent Prediction Engine: Automatically analyzes circuit features (gate density, entanglement, locality) to predict and select the fastest simulation backend for your specific workload.
  • High-Performance Optimizations: Transparently applies multi-threading, multi-processing, and optimized state sampling to increase throughput.
  • GPU Acceleration: Integrated support for GPU-accelerated Statevector and custom Matrix Product State (MPS) execution.
  • Distributed Quantum Computing (DQC): Supports p-block simulation (Composite mode) to simulate distributed quantum networks and break the memory ceiling of monolithic simulations.
  • Backend-agnostic: Allows new simulators to be added easily

Architecture Overview

The Maestro pipeline consists of:

  1. Circuit ingestion (Qiskit/QASM)
  2. Conversion to Maestro’s Intermediate Representation
  3. Feature extraction (gate density, entanglement locality, structure)
  4. Prediction engine (runtime estimation and backend routing)
  5. Execution on one of the supported backends:
    • CPU statevector
    • GPU statevector
    • CPU/GPU MPS
    • Tensor networks
    • Clifford/stabilizer
    • Composite p-block distributed simulation

Simulation Backends

Maestro integrates or wraps the following:

  • CPU statevector (Qiskit Aer, QCSim, custom implementations)
  • GPU statevector (NVIDIA cuStateVec)
  • CPU MPS (multiple libraries)
  • GPU MPS (custom CUDA implementation)
  • Tensor network simulators
  • Stabilizer/Clifford simulators
  • p-block composite simulation for DQC

Each backend is accessed through a C++ adapter that maps Maestro’s IR to the simulator’s native API.

Automatic Backend Selection

Maestro includes a prediction engine that:

  • extracts structural features from the circuit
  • uses a regression model trained on benchmark data
  • estimates relative runtimes across all backends
  • selects the backend expected to run fastest on the current hardware

The model normalizes performance features to reduce hardware dependence and can be recalibrated on installation.

Documentation

API Documentation

To generate the API documentation using Doxygen:

# Ensure Doxygen is installed
cd build
cmake ..
make doc

The documentation will be generated in docs/html/index.html.

Building Maestro

Quick start:

chmod +x build.sh
./build.sh

For detailed instructions, see INSTALL.md.

Citation

An Article detailing Maestro will be published shorty. This reference can be used for citation.

@article{bertomeu2025maestro,
  title={Maestro: Intelligent Execution for Quantum Circuit Simulation},
  author={Bertomeu, Oriol and Ghayas, Hamzah and Roman, Adrian and DiAdamo, Stephen},
  organization={Qoro Quantum},
  year={2025}
}

License

This project is licensed under the GNU General Public License v3.0.

You may copy, distribute, and modify this software under the terms of the GPL-3.0 license. A copy of the license text is available in the LICENSE file and at:

https://www.gnu.org/licenses/gpl-3.0.en.html

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

qoro_maestro-0.1.0.tar.gz (206.4 kB view details)

Uploaded Source

Built Distribution

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

qoro_maestro-0.1.0-cp311-cp311-manylinux_2_39_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.39+ x86-64

File details

Details for the file qoro_maestro-0.1.0.tar.gz.

File metadata

  • Download URL: qoro_maestro-0.1.0.tar.gz
  • Upload date:
  • Size: 206.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for qoro_maestro-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d6658c8f1590a8b3d60e038ed60b9e9a27f8b69f652eb6ee4a45c36886e5ef9b
MD5 8f7af224a1de17b0c68e8d1d230b798c
BLAKE2b-256 bfbb2513e1d85d878ba3b06d06c8662b101ed4f53a201391b8e5b10656eb561d

See more details on using hashes here.

File details

Details for the file qoro_maestro-0.1.0-cp311-cp311-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for qoro_maestro-0.1.0-cp311-cp311-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 2db3fb84445a107ae5a49f621951c7b90c2844f951b50c619df0492f09055e16
MD5 051d85be684ee6b5cba89e2179fd7302
BLAKE2b-256 c867b7f01e183adcf5995e398b7558b97d5ea62448b3724a6c4af96e7901ca84

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