Skip to content

Royschenk/Circuit_Optimization

Repository files navigation

Circuit Optimization and Middleware Benchmarking with Quantum Mini-Apps

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.


Mini-Apps Overview

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.

Key Features

  • 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)

Example outputs

  • 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)

Requirements

  • 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

Repository Structure

.
├── 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

Citation

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.


Related Projects

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors