This repository contains six quantum mini-apps developed for the Master's thesis Evaluating Middleware for Hybrid Quantum-Classical Applications Using Quantum Mini-Apps (Utrecht University, 2025). Each mini-app benchmarks a specific execution motif using realistic noise models and Dynamical Decoupling (DD) techniques, targeting middleware behavior under hybrid quantum-classical workloads.
All experiments are compatible with the Pilot-Quantum middleware and can be executed locally or on SLURM-based HPC clusters with Ray/Dask backends.
| Script | Execution Motif | Description |
|---|---|---|
dd-qiskit.py |
Circuit Optimization | Applies DD to noisy Qiskit circuits. Compares fidelity and circuit depth with and without DD sequences under phase damping and thermal noise. |
dd-pennylane.py |
Circuit Optimization | Evaluates JSD between noisy and ideal bitstring distributions on PennyLane circuits under DD. Supports qubit/depth sweeps. |
vqa.py |
VQA | Performs a VQE energy scan on the H₂ molecule across bond distances. Supports noisy simulation and optional DD. |
vqa-dd.py |
VQA + CO | Extended VQE loop comparing ideal, noisy, and noisy+DD executions. Outputs fidelity, JSD, and energy convergence. |
cc-dd.py |
Circuit Cutting + CO | Combines circuit cutting and DD. Compares three scenarios: no DD, DD-after-cutting, and DD-before-cutting. Benchmarks fidelity and subcircuit depth. |
qml-training-dd.py |
Hybrid ML Workflow | Trains a discrete QCBM model on synthetic data with and without DD. Measures KL divergence between model output and true distribution. |
- Realistic noise modeling with AerSimulator (phase damping, pennylane's mixed simulation)
- Dynamical Decoupling strategies: XY4
- Fidelity, JSD, and subcircuit depth as metrics
- Supports dense and cut circuits, QML, and VQE workflows
- Fully orchestrated with Pilot-Quantum middleware (Ray/SLURM compatible)
- Fidelity vs. qubit count plots
- JSD analysis for DD vs no-DD
- VQE modeling H₂ molecule across different bond lengths
- Subcircuit depth + accuracy comparisons (circuit cutting)
- Execution time vs QPS scaling (Pilot-Quantum experiments)
- Python 3.11+
- Qiskit 1.2.4
- PennyLane ≥ 0.35
- NumPy, Matplotlib, SciPy
- Pilot-Quantum
- Ray (for distributed runs)
Install all dependencies using:
pip install -r requirements.txt.
├── dd-qiskit.py # Circuit DD (Qiskit)
├── dd-pennylane.py # Circuit DD + JSD (PennyLane)
├── vqa.py # VQE on H₂
├── vqa-dd.py # VQE with fidelity and JSD comparison on H₂
├── cc-dd.py # Circuit Cutting + DD
├── qml-training-dd.py # QCBM model training with/without DD
├── notebook/ # Postprocessing notebooks
├── experiment_data/ # Raw simulation outputs
├── plots/ # visualizations generated by the nootebooks
├── requirements.txt
└── README.md
If you use these tools in academic research, please cite:
Roy Schenk, Evaluating Middleware for Hybrid Quantum-Classical Applications Using Quantum Mini-Apps, Master’s Thesis, Utrecht University, 2025.
- Pilot-Quantum – Middleware layer used for execution
- quantum-mini-apps – Mini-app repository