Skip to main content

Quration: Quantum Resource Estimation Toolchain

Quration is a toolchain for exploring design space of fault-tolerant quantum computer (FTQC) architectures and curate optimization strategies and co-design techniques to find a state-of-the-art system designs.

This project is developed and maintained by RIKEN, Fixstars, The University of Osaka, and QunaSys. The development of Quration is in progress, and their backward compatibility might be broken in future updates.

License

  • External libraries (./externals/) are re-distributed under each library's license.
  • Application generators (./quration-algorithm/) are distributed only for research purpose.
  • The other quration libraries (./quration-core/, ./quration-visualize/, ./quration-docs/) are distributed under MIT-license.

Features

Quration consists of three components; quration-algorithm, quration-core, and quration-visualizer.

See ./quration-docs/tutorial/ for tutorials of these programs.

  • quration-algorithm: Generate popular quantum algorithms and their subroutines as Quration-IR

    • Quration-IR is a succinct LLVM-like language dedicated for evaluating large-scale FTQC applications.
    • Algorithm generators for the following applications are implemented.
  • quration-core: Manipulate Quration-IR and compile them into a target instruction set.

    • Quration-IR can be handled with an application named qret. Avaialble commands for qret are as follows (see manual for details).
      • qret parse: Parse existing formats (e.g. QASM) into Quration-IR
      • qret print: Print Quration-IR as an LLVM-like form
      • qret simulate: Simulate Quration-IR with several types of backend
      • qret opt: Optimize Quration-IR with pre-defined or user-defined workflow
      • qret compile: Compile Quration-IR into pre-defined or user-defined instruction sets of FTQCs
      • qret profile: Profile compiled programs and generate resource estimation profiles
      • qret asm: Dump compiled programs in a simple ascii form
    • Currently available target instructions:
      • We currently support FTQC based on surface codes, lattice surgery, code-deformation-based S-gate, and magic-state cultivation, and communication.
        • SC_LS_FIXED_V0_Dim2: Standard architecture, i.e., 2D array of surface codes
        • SC_LS_FIXED_V0_Dim3: Architecture with several layers of 2D surface-code arrays allowing transversal CNOTs between layers
        • SC_LS_FIXED_V0_Dist: Standard distributed FTQC, where each nodes consists of 2D surface code arrays
  • quration-visualizer: Visualize execution traces and compare resource estimation profiles on browers

Install Quration-Core and Quration-Algorithm

Currently we only support build from source. Pre-build executables, python libraries, and C++ shared library will be distributed soon.

Environment

We expect our library will work on Windows, MacOS, and Linux with compilers GCC, Clang, and MSVS. This library is tested on the following environments.

  • Windows 11 + Microsoft Visual Studio 2022
  • Ubuntu 24.04 + Clang

Install dependencies

  • Install vcpkg:

    • vcpkg is a package manager for C++ libraries, which is used for downloading dependent C++ libraries.
    • See vcpkg installation page for how to install vcpkg.
    • Make sure that an environment variable VCPKG_ROOT is set to the path to vcpkg folder.
  • Install cmake:

    • Windows: Install cmake from official web sites
    • Ubuntu: Instlal with apt install cmake
  • Optional

    • Python: required if you want to build python binding
    • gridsynth: required if you want to decompose Pauli-rotation gates into Clifford+T
      • Since official binaries in gridsynth websites do not work on recent Linux environment, our builds are re-distributed with GNU GPL.
        • Windows: ./externals/bin/gridsynth.exe
        • Linux: ./externals/bin/gridsynth
        • MacOS: ./externals/bin/gridsynth_macos

Build process

Please type the following commands at the root of this repository.

cmake --preset dist
cmake --build --preset build-dist

Then, you can find the following binaries in ./bin/main and ./bin/benchmark_generators.

  • qret: main program
    • In the case of windows, it is dependent on qret-core.dll, yaml-cpp.dll, and boost_program_options-*.dll
  • Quration-IR generators:
    • Shor's factoring and subroutines
      • create_period_finding: Generate the whole period finding programs.
      • create_multi_controlled_mod_bi_mul_imm: Generate circuits for Mod-bimultiplication.
      • create_add_craig: Generate craig-adder circuits.
      • create_add_cuccaro: Generate cuccaro-adder circuits.
      • create_qrom: Generate QROM circuits.
    • Qubitization-based quantum phase estimation and subroutines:
      • create_qpe: Generate the whole qunatum phase estimation programs
      • create_select: Generate SELECT circuits
      • create_prepare: Generate PREPARE circuits
    • Trotter-based Quantum-dynamics simulation
      • create_trotter: Generate the whole dynamics simulation

quration-visualizer

quration-visualizer is a streamlit based web visualization of compiled FTQC programs.

Install

Install dependent python libraries with

pip install numpy pandas plotly streamlit graphviz

Usage

Then, you can run web applications as follows

  • streamlit run visualize_profile.py : Visualizer for profile information
  • streamlit run visualize_computational_process.py : Visualizer for traces of quantum programs

Metadata

Release files for pyqret 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyqret 1.1.0
File Size Uploaded Provenance Actions
pyqret-1.1.0.tar.gz 9.7 MB Without provenance Details for pyqret-1.1.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for pyqret 1.1.0
File Actions
pyqret-1.1.0-cp312-abi3-win_amd64.whl CPython 3.12 abi3 Windows x86-64 Details for pyqret-1.1.0-cp312-abi3-win_amd64.whl
pyqret-1.1.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 abi3 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for pyqret-1.1.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
pyqret-1.1.0-cp312-abi3-macosx_26_0_arm64.whl CPython 3.12 abi3 macOS 26.0+ ARM64 Details for pyqret-1.1.0-cp312-abi3-macosx_26_0_arm64.whl
pyqret-1.1.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for pyqret-1.1.0-cp311-cp311-win_amd64.whl
pyqret-1.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for pyqret-1.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
pyqret-1.1.0-cp311-cp311-macosx_26_0_arm64.whl CPython 3.11 CPython 3.11 macOS 26.0+ ARM64 Details for pyqret-1.1.0-cp311-cp311-macosx_26_0_arm64.whl
pyqret-1.1.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for pyqret-1.1.0-cp310-cp310-win_amd64.whl
pyqret-1.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for pyqret-1.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
pyqret-1.1.0-cp310-cp310-macosx_26_0_arm64.whl CPython 3.10 CPython 3.10 macOS 26.0+ ARM64 Details for pyqret-1.1.0-cp310-cp310-macosx_26_0_arm64.whl

Total release size: 74.0 MB

Release files / pyqret-1.1.0.tar.gz

Download URL pyqret-1.1.0.tar.gz
Size 9.7 MB
Tags Source
SHA-256 checksum
How to use checksums
dcca40a26feee3dc4c97d4224595d42367bedc059a5a65fb471521265460ed24
BLAKE2b-256 checksum
How to use checksums
bb13bbbc4668294327a9b5914401fbfc698996a91f1f59425247c91ef63a2ef4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / pyqret-1.1.0-cp312-abi3-win_amd64.whl

Download URL pyqret-1.1.0-cp312-abi3-win_amd64.whl
Size 9.7 MB
Tags CPython 3.12 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
8b4d70604b80cc5ee05b870b330fa76b73bcd4e22ff725805b0692a982a5edc3
BLAKE2b-256 checksum
How to use checksums
aab20ca473d366ccad274e10f2574d16359e64bc8583ea4ab096f63c4786f544
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / pyqret-1.1.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyqret-1.1.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 5.0 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
c8d5ef7c960bd7fbbd1b9258bd9f445edc91f2925fae08858d17e124eb8e02b4
BLAKE2b-256 checksum
How to use checksums
2b93387510eec6f84af9234383f0abffcb4735e8a32d765dd94312c5836b2829
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / pyqret-1.1.0-cp312-abi3-macosx_26_0_arm64.whl

Download URL pyqret-1.1.0-cp312-abi3-macosx_26_0_arm64.whl
Size 6.7 MB
Tags CPython 3.12 abi3 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
2f19933dacf8af9e51644bc3a0bcde1837b8f5eaf70b0b4a7b014135f2542c5b
BLAKE2b-256 checksum
How to use checksums
ce8aeb8ecd14652ee2fa84a233ccaeed2fce851490b446df624a6ff85a7e89d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / pyqret-1.1.0-cp311-cp311-win_amd64.whl

Download URL pyqret-1.1.0-cp311-cp311-win_amd64.whl
Size 9.7 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
f7c377e926a0064da30132b9d0ad8549dd9f4acc87fc70f48f148635efe51d75
BLAKE2b-256 checksum
How to use checksums
94b5b982ec83fac8c76cf7164a45ef5e0e52fb3007d53f7ef1fb2820bcb5bab9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / pyqret-1.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyqret-1.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 5.0 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b61a9a4f9d81f283247cbf28fabd579d6e0b54d316fe09709e5da606bcf61efa
BLAKE2b-256 checksum
How to use checksums
4e48a422192edb738773cc2ca795022f452438ac7f23446515a42e8393c4a9ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / pyqret-1.1.0-cp311-cp311-macosx_26_0_arm64.whl

Download URL pyqret-1.1.0-cp311-cp311-macosx_26_0_arm64.whl
Size 6.7 MB
Tags CPython 3.11 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
77eb3ae9846f720ecb85035805ee341a9a322b4493633f77df9eb1acc6cfa254
BLAKE2b-256 checksum
How to use checksums
59fd9e5f69f5c59a05ca82d25a64c1bfb567a2190582d7b11ceb80707052427d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / pyqret-1.1.0-cp310-cp310-win_amd64.whl

Download URL pyqret-1.1.0-cp310-cp310-win_amd64.whl
Size 9.7 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
9ba87c1093d9b47aaa2530bce55d2a7487348837321a74617b027506abd521d9
BLAKE2b-256 checksum
How to use checksums
885972c2f2960d43080a3f4bfd9b3e1a32e3803a4c3bf5bb573a40c9a385025a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / pyqret-1.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pyqret-1.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 5.0 MB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4dae86a811b11a1d72740241f27ae51136dc69917b642ada40ebe7d919c7aa48
BLAKE2b-256 checksum
How to use checksums
a3f147f8cdf04b588c626f0ab7439335cd787b69b23265d8cc1426f71670e61c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / pyqret-1.1.0-cp310-cp310-macosx_26_0_arm64.whl

Download URL pyqret-1.1.0-cp310-cp310-macosx_26_0_arm64.whl
Size 6.7 MB
Tags CPython 3.10 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
716d980e1da9f071ff925c40737acb55556b6327763de8651b5b26fa25a78be2
BLAKE2b-256 checksum
How to use checksums
675730afb36a8016f971186ed5067b380ad5a02a854a6df6e80f9218b2abc251
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Security for pyqret 1.1.0

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.1.0 This release

10 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page