Welcome to Qdislib!

Qdislib is a Python library designed for scalable quantum circuit execution using circuit cutting techniques. It enables the simulation of large quantum circuits by splitting them into smaller, manageable subcircuits that can be executed independently—either on classical simulators, GPUs, or quantum hardware.

Qdislib is built on top of the PyCOMPSs parallel runtime, allowing seamless distributed execution of quantum workloads across CPUs, GPUs, and QPUs.

With Qdislib, researchers and developers can:

  • Perform gate and wire cutting to decompose complex quantum circuits, plus an ancilla-based Hadamard-test gate cut (gate_cutting_hadamard) and mixed wire + gate cutting on one circuit (gate_wire_cutting).

  • Cut any two-qubit gate — CZ/CX natively, other gates auto-decomposed to CZ, or cut in a single step with the Hadamard-test method.

  • Leverage GPU acceleration using Qiskit Aer, cuQuantum or Qibojit.

  • Submit subcircuits to remote QPUs like IBM Quantum.

  • Work with circuits defined in Qibo, Qiskit, CUDA-Q, and PennyLane.

  • Automatically identify good cut points with find_cut, including hardware-aware selection that cuts the longest-routing gates for a given QPU coupling_map (SparseCut, arXiv:2511.05492).

  • Extract and manipulate subcircuits independently.

Whether you’re targeting HPC systems, hybrid quantum-classical setups, or constrained simulators, Qdislib is a flexible and modular tool to bridge the gap between current hardware limitations and large-scale quantum algorithm design.

Explore the sections below to get started with installation, quickstart examples, user guides, API references, and more.

Qdislib has been implemented on top of PyCOMPSs programming model, and it is being developed by the Workflows and Distributed Computing group of the Barcelona Supercomputing Center.

Documentation

🚀 Quickstart

Install and cut your first circuit in three steps.

Quickstart
📖 User guide

Gate vs wire cutting, observables, sampling, caching, backends & GPUs.

User guide
🧪 Examples

The hands-on notebook learning path and end-to-end applications.

Examples
🧩 API reference

Every public function, class and module.

API Reference
🛠️ Development

Build, test and release Qdislib.

Developer’s guide
📚 Glossary

Circuit-cutting terms, defined.

Glossary of terms
📄 Cheat sheet (PDF)

A one-page printable reference.

Qdislib_cheatsheet.pdf

Source code

The source code of Qdislib is available online at Github.

Support

If you have questions or issues about the Qdislib you can join us in Slack.

Alternatively, you can send us an e-mail to support-compss@bsc.es.

Citing Qdislib

If you use Qdislib in a scientific publication, we would appreciate citations to the following papers. Please cite the original paper (ACM, SC ‘25 Workshops) first:

M. Tejedor, B. Casas, J. Conejero, A. Cervera-Lierta and R. M. Badia, “Orchestrating Quantum-HPC Workflows with Distributed Quantum Circuit Cutting,” in Proceedings of the SC ‘25 Workshops of the International Conference for High Performance Computing, Networking, Storage and Analysis, ACM, 2025, pp. 1898-1906. https://doi.org/10.1145/3731599.3767547

M. Tejedor, J. Conejero and R. M. Badia, “A Semantic Quantum Circuit Cache for Scalable and Distributed Quantum-Classical Workflows,” arXiv:2604.26788, 2026. https://arxiv.org/abs/2604.26788

Bibtex

@inproceedings{Qdislib,
    title     = {{Orchestrating Quantum-HPC Workflows with Distributed Quantum Circuit Cutting}},
    author    = {Mar Tejedor and Berta Casas and Javier Conejero and Alba Cervera-Lierta and Rosa M. Badia},
    booktitle = {Proceedings of the SC '25 Workshops of the International Conference for High Performance Computing, Networking, Storage and Analysis},
    publisher = {ACM},
    pages     = {1898--1906},
    year      = {2025},
    doi       = {10.1145/3731599.3767547},
}

@article{QdislibCache,
    title   = {{A Semantic Quantum Circuit Cache for Scalable and Distributed Quantum-Classical Workflows}},
    author  = {Mar Tejedor and Javier Conejero and Rosa M. Badia},
    journal = {arXiv preprint arXiv:2604.26788},
    year    = {2026},
}

Indices and tables