HPC & Deployment

HPC & Deployment

This page covers running Maestro on your own infrastructure, which is the Maestro Enterprise deployment model.

GPU acceleration

The GPU plugin is a CUDA/cuQuantum library that Maestro loads at runtime. It adds GPU backends for statevector, MPS, tensor-network, Pauli-propagation, density-matrix, and MPO simulation. NVIDIA GPUs from Volta to Blackwell are supported on Linux. Code does not change: set simulator_type=SimulatorType.Gpu in the SimulatorConfig, or let Maestro Auto consider GPU candidates.

Statevectors too large for one GPU can be distributed:

  • DistributedGpu spreads one statevector across the GPUs in a node.
  • DistributedMpiGpu spreads it across nodes over CUDA-aware MPI. Every rank runs the same program under mpirun or srun.

On your own hardware the GPU plugin is licensed: it is included in Maestro Enterprise and free for academic use. On Qoro’s cloud it needs no licence, because every account can run on the GPU simulator cluster. See Get GPU access. The CPU engine needs no licence.

Packaging

  • Python wheel. pip install qoro-maestro.
  • C/C++ library with a C API and a schema-versioned JSON request API. One JSON document describes a circuit, an operation (execute, estimate, statevector, fidelity, batch, and others), the simulator selection, and noise.
  • maestro CLI. Runs OpenQASM files with flags for qubits, shots, engine, method, and bond dimension. It suits job arrays.
  • Container images for cluster deployment.

Slurm and multi-user sites

For shared clusters, the Maestro local server is a small daemon that runs on each compute node. It accepts JSON requests over a local socket, queues them, and runs each one in an isolated worker process. MPI launch profiles cover distributed-GPU jobs.

Slurm integration goes through QRMI, the vendor-agnostic Quantum Resource Management Interface, which Qoro has extended with a Maestro Local resource type. Together with the QRMI Slurm plugins, users request Maestro as a quantum resource in their job script, the same way they would request a physical QPU. The resource reports its availability from the local server. An older standalone SPANK plugin, maestro-spank-plugin, is still available for simple setups that expose Maestro options as srun/sbatch flags.

#!/bin/bash
#SBATCH --job-name=maestro_array
#SBATCH --array=0-99
#SBATCH --gres=gpu:1

FILES=(circuits/*.qasm)
IN=${FILES[$SLURM_ARRAY_TASK_ID]}
srun maestro -f "$IN" -s 1000 -r gpu -t statevector -o "out/$(basename "${IN%.*}").json"

HPC integrations

  • CESGA (Spain). Maestro-backed simulators for the CUNQA distributed-QPU emulator, covering no-communication, classical-communication, and quantum-communication modes.
  • LRZ (Germany). A QDMI device that exposes Maestro to the Munich Quantum Software Stack like any other backend.
  • NPL (UK). Independent benchmarking as part of the M4Q programme. NPL found Maestro “well-suited for HPC environments due to [its] ability to exploit parallelism through multithreading and multiprocessing.”