Documentation · Quick Start · Examples
Ground-state energies of molecules with the Variational Quantum Eigensolver - and the infrastructure to keep every iteration it takes to get there.
Architecture
graph LR
M[molecules.json] --> HF
subgraph sim["quantum-pipeline (pip install)"]
HF[PySCF<br/>Hartree-Fock reference] --> VQE[VQE loop<br/>Qiskit ansatz, scipy optimizer<br/>Aer on CPU or GPU]
end
VQE --> Out[PDF report +<br/>convergence plots]
subgraph platform["data platform (docker compose, optional)"]
K[Kafka<br/>one Avro message per finished run] --> S[Spark jobs<br/>scheduled by Airflow] --> I[(Iceberg tables<br/>on Garage)]
I --> ML["ML module<br/>predict convergence from the first K steps"]
end
VQE -->|result with all iterations| K
VQE -->|metrics| G[Prometheus + Grafana]
Point quantum-pipeline at a JSON file of molecules and it runs VQE for each one. PySCF supplies the Hartree-Fock starting point, Qiskit builds the ansatz, a scipy optimizer drives it, and Aer simulates the circuit on CPU or on an NVIDIA GPU. A run ends with a PDF report and a convergence plot per molecule.
Everything to the right of the solver is optional. With Kafka on, the finished result of each molecule, with every iteration in it, leaves the solver as one Avro message, and Spark jobs scheduled by Airflow land those messages in Iceberg tables.
Prometheus metrics and a Grafana dashboard with alert rules watch the run. The ML module, which reads the tables to predict from the first iterations whether a run will converge, is in progress and not part of a normal run.
What it does
- Runs VQE for every molecule in a JSON file, in
sto3g,6-31gorcc-pvdz - Lets you pick the classical optimizer (L-BFGS-B, COBYLA, SLSQP, Nelder-Mead, Powell, BFGS, CG, TNC), the ansatz depth, the iteration cap and the convergence threshold
- Simulates with Qiskit Aer on CPU, or on a GPU through the CUDA Thrust backend with the
:gpuimage (Docker Hub · GHCR) - Writes a PDF report and PNG convergence plots to
gen/ - Streams each finished run, with all its iterations, to Kafka as Avro, with a schema registry
- Turns the stream into Iceberg tables with Spark and Airflow
- Exports Prometheus metrics and ships a Grafana dashboard
- Work in progress: models that predict convergence and final energy from the first iterations of a run
Quick Start
pip install quantum-pipeline
quantum-pipeline -f molecules.json -b sto3g --max-iterations 100 --optimizer L-BFGS-B --report
Or with Docker:
docker pull straightchlorine/quantum-pipeline:cpu
docker run --rm straightchlorine/quantum-pipeline:cpu -f data/molecules.json -b sto3g --max-iterations 100
Both images are on Docker Hub as straightchlorine/quantum-pipeline:cpu and :gpu, and on GHCR as ghcr.io/straightchlorine/quantum-pipeline with the same tags.
The GPU image is built for compute capabilities 6.1, 7.0, 8.0 and 9.0 (plus PTX), so it targets NVIDIA GPUs with compute capability 6.1 or newer. To build for one GPU only, rebuild it with the CUDA_ARCH build argument - see the GPU acceleration page.
The installation guide covers GPU acceleration; the deployment guide brings up the full platform with docker compose.
Documentation
Full docs at https://docs.qp.piotrkrzysztof.dev. Build them locally with:
pdm run mkdocs serve
Started as an engineering thesis, continued through a master's. Source on GitHub, mirrored on Codeberg.
License
MIT License. See LICENSE for details.
To the only God, be honour and glory for ever and ever.
Metadata
Release files for quantum-pipeline 2.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| quantum_pipeline-2.3.1.tar.gz | 196.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| quantum_pipeline-2.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 317.3 kB
Release files / quantum_pipeline-2.3.1.tar.gz
| Download URL | quantum_pipeline-2.3.1.tar.gz |
|---|---|
| Size | 196.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
78a9be9780f8f44c14735f413b9ce1224a745f92d9096a32f9c80a15e10c6b57
|
|
BLAKE2b-256 checksum How to use checksums |
7878b5a4c27cd9e913428d4098dc300bb141d1dec76a98747eee615f47f9f2ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.
Transparency logRelease files / quantum_pipeline-2.3.1-py3-none-any.whl
| Download URL | quantum_pipeline-2.3.1-py3-none-any.whl |
|---|---|
| Size | 121.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
240b5c4b8ddf1d44059f5673bc128a1565215dc3f0525cff204b2a78f1f7dd3c
|
|
BLAKE2b-256 checksum How to use checksums |
bcf0851aa28034244b5ec8ea52f34ce0a81d91aa0926e86adff12df72ea0f694
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.
Transparency log