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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyqret-1.1.0.tar.gz (9.7 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyqret-1.1.0-cp312-abi3-win_amd64.whl (9.7 MB view details)

Uploaded CPython 3.12+Windows x86-64

pyqret-1.1.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyqret-1.1.0-cp312-abi3-macosx_26_0_arm64.whl (6.7 MB view details)

Uploaded CPython 3.12+macOS 26.0+ ARM64

pyqret-1.1.0-cp311-cp311-win_amd64.whl (9.7 MB view details)

Uploaded CPython 3.11Windows x86-64

pyqret-1.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyqret-1.1.0-cp311-cp311-macosx_26_0_arm64.whl (6.7 MB view details)

Uploaded CPython 3.11macOS 26.0+ ARM64

pyqret-1.1.0-cp310-cp310-win_amd64.whl (9.7 MB view details)

Uploaded CPython 3.10Windows x86-64

pyqret-1.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyqret-1.1.0-cp310-cp310-macosx_26_0_arm64.whl (6.7 MB view details)

Uploaded CPython 3.10macOS 26.0+ ARM64

File details

Details for the file pyqret-1.1.0.tar.gz.

File metadata

  • Download URL: pyqret-1.1.0.tar.gz
  • Upload date:
  • Size: 9.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for pyqret-1.1.0.tar.gz
Algorithm Hash digest
SHA256 dcca40a26feee3dc4c97d4224595d42367bedc059a5a65fb471521265460ed24
MD5 c9b85abc2702baa0986fb673ce80b57b
BLAKE2b-256 bb13bbbc4668294327a9b5914401fbfc698996a91f1f59425247c91ef63a2ef4

See more details on using hashes here.

File details

Details for the file pyqret-1.1.0-cp312-abi3-win_amd64.whl.

File metadata

  • Download URL: pyqret-1.1.0-cp312-abi3-win_amd64.whl
  • Upload date:
  • Size: 9.7 MB
  • Tags: CPython 3.12+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for pyqret-1.1.0-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8b4d70604b80cc5ee05b870b330fa76b73bcd4e22ff725805b0692a982a5edc3
MD5 4e5dc2f84d2b88a802f54986214fc98f
BLAKE2b-256 aab20ca473d366ccad274e10f2574d16359e64bc8583ea4ab096f63c4786f544

See more details on using hashes here.

File details

Details for the file pyqret-1.1.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyqret-1.1.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c8d5ef7c960bd7fbbd1b9258bd9f445edc91f2925fae08858d17e124eb8e02b4
MD5 bb44108bcc09ad1f105339e7d0e83ffa
BLAKE2b-256 2b93387510eec6f84af9234383f0abffcb4735e8a32d765dd94312c5836b2829

See more details on using hashes here.

File details

Details for the file pyqret-1.1.0-cp312-abi3-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for pyqret-1.1.0-cp312-abi3-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 2f19933dacf8af9e51644bc3a0bcde1837b8f5eaf70b0b4a7b014135f2542c5b
MD5 a83a5f5d82d5ffa3cc241b69f337adc3
BLAKE2b-256 ce8aeb8ecd14652ee2fa84a233ccaeed2fce851490b446df624a6ff85a7e89d4

See more details on using hashes here.

File details

Details for the file pyqret-1.1.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pyqret-1.1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 9.7 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for pyqret-1.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f7c377e926a0064da30132b9d0ad8549dd9f4acc87fc70f48f148635efe51d75
MD5 9d907e2bfb13c01af03539e459ea4cba
BLAKE2b-256 94b5b982ec83fac8c76cf7164a45ef5e0e52fb3007d53f7ef1fb2820bcb5bab9

See more details on using hashes here.

File details

Details for the file pyqret-1.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyqret-1.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b61a9a4f9d81f283247cbf28fabd579d6e0b54d316fe09709e5da606bcf61efa
MD5 0e02da92f5d0106fedc50557f582058c
BLAKE2b-256 4e48a422192edb738773cc2ca795022f452438ac7f23446515a42e8393c4a9ff

See more details on using hashes here.

File details

Details for the file pyqret-1.1.0-cp311-cp311-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for pyqret-1.1.0-cp311-cp311-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 77eb3ae9846f720ecb85035805ee341a9a322b4493633f77df9eb1acc6cfa254
MD5 ff08062e4aa8aeb7482e826ba46f303d
BLAKE2b-256 59fd9e5f69f5c59a05ca82d25a64c1bfb567a2190582d7b11ceb80707052427d

See more details on using hashes here.

File details

Details for the file pyqret-1.1.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pyqret-1.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 9.7 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for pyqret-1.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9ba87c1093d9b47aaa2530bce55d2a7487348837321a74617b027506abd521d9
MD5 9e7bb77e8a2eb8ebe8060c570f3b5b24
BLAKE2b-256 885972c2f2960d43080a3f4bfd9b3e1a32e3803a4c3bf5bb573a40c9a385025a

See more details on using hashes here.

File details

Details for the file pyqret-1.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyqret-1.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4dae86a811b11a1d72740241f27ae51136dc69917b642ada40ebe7d919c7aa48
MD5 25eba10f1021b62261534f435cadb5a8
BLAKE2b-256 a3f147f8cdf04b588c626f0ab7439335cd787b69b23265d8cc1426f71670e61c

See more details on using hashes here.

File details

Details for the file pyqret-1.1.0-cp310-cp310-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for pyqret-1.1.0-cp310-cp310-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 716d980e1da9f071ff925c40737acb55556b6327763de8651b5b26fa25a78be2
MD5 579fdf0447b1b9f398d613f93265814e
BLAKE2b-256 675730afb36a8016f971186ed5067b380ad5a02a854a6df6e80f9218b2abc251

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.1.0 This release

10 files

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