Skip to main content

UnifiedQuantum - A unified, non-commercial quantum computing aggregation framework.

Project description

UnifiedQuantum Banner

UnifiedQuantum

PyPI version codecov Build and Test

UnifiedQuantum — A unified, non-commercial quantum computing aggregation framework.

UnifiedQuantum is a lightweight Python framework that provides a unified interface for quantum circuit construction, simulation, and cloud execution across multiple quantum computing platforms. It aggregates backends including OriginQ, Quafu, and IBM Quantum under one consistent API.


核心工作流

UnifiedQuantum 围绕一个简洁的工作流设计:任意方式构建线路 → uniqc CLI 统一执行

1. 安装

pip install unified-quantum

2. 构建线路(支持原生 API 或任意第三方工具)

from uniqc.circuit_builder import Circuit

c = Circuit()
c.h(0)
c.cnot(0, 1)
c.measure(0, 1)

# 输出 OriginIR 格式,可供 CLI 使用
open('circuit.ir', 'w').write(c.originir)

你也可以使用 Qiskit、Cirq 等工具构建线路,只需最终输出 OriginIR 或 OpenQASM 2.0 格式。

3. CLI 统一执行

# 本地模拟
uniqc simulate circuit.ir --shots 1000

# 提交到云端
uniqc submit circuit.ir --platform originq --shots 1000

# 查询任务结果
uniqc result <task_id>

设计理念

UnifiedQuantum 是一个非商业性的开源项目,四条基本立场贯穿整个设计:

  • 聚合:把分散的量子云平台(OriginQ、Quafu、IBM Quantum 等)收拢到同一套接口下。
  • 统一:从线路构建、模拟执行到任务管理,对外呈现一致的 API 与 CLI,不让用户为每家平台单独学一套。
  • 透明:线路如何组装、如何被翻译、如何提交到后端,全部显式可见,没有隐藏的 magic。
  • 轻量:依赖少、安装快、易于嵌入现有项目。

抽象上,UnifiedQuantum 的三个核心对象覆盖了完整的量子程序生命周期:

  • Circuit — 量子线路构建器,原生支持 OriginIR / OpenQASM 2.0 双格式输出。
  • Backend — 本地模拟器或真实量子硬件的统一句柄。
  • Result — 测量结果以原生 Python 结构返回(dict / list / ndarray),便于后处理。

Features

  • 多平台提交:一个 submit_task(或 uniqc submit)即可将同一份 OriginIR 发往 OriginQ、Quafu、IBM Quantum,或本地 dummy 模拟器。
  • 本地模拟:自带 OriginIR Simulator、QASM Simulator,支持 statevector / density matrix 两种后端,以及带噪声的变体。
  • 算法组件:内置 HEA、UCCSD、QAOA 等常用 ansatz,可直接用于 VQE / QAOA 研究。
  • PyTorch 集成:提供 QuantumLayer、参数偏移梯度、批处理执行,便于构建混合量子—经典模型。
  • 可互操作:线路既可用原生 API 构建,也可来自 Qiskit、Cirq 等第三方工具,只要最终产出 OriginIR 或 OpenQASM 2.0。
  • 同步 / 异步并存submit_task 立即返回 task_idwait_for_result--wait 可阻塞至完成。
  • 易扩展:门集、错误模型、平台适配器都按接口组织,添加新后端只需实现一个 adapter。

Installation

Supported Platforms

  • Windows / Linux / macOS

Requirements

  • Python 3.10 – 3.13

pip(推荐)

pip install unified-quantum

uv tool(作为独立 CLI 工具安装)

如果只想在命令行用 uniqc 而不污染全局环境:

# 安装
uv tool install unified-quantum

# 带可选依赖
uv tool install "unified-quantum[simulation]"

# 升级 / 卸载
uv tool upgrade unified-quantum
uv tool uninstall unified-quantum

uv tool 会为 uniqc 创建一个独立的虚拟环境并把可执行文件链接到 ~/.local/bin/uniqc

Build from Source

git clone --recurse-submodules https://github.com/IAI-USTC-Quantum/UnifiedQuantum.git
cd UnifiedQuantum
pip install .

Requirements:

  • CMake >= 3.26
  • C++ compiler with C++17 support
  • Git submodules (pybind11, fmt)

If system CMake is too old:

pip install cmake --upgrade

Development mode:

pip install -e . --no-build-isolation

Optional Dependencies

核心依赖(包括 scipy)在默认安装中已包含。以下为可选功能依赖:

功能 安装命令
OriginQ 云平台 pip install unified-quantum[originq]
Quafu 执行后端 pip install unified-quantum[quafu]
Qiskit 执行后端 pip install unified-quantum[qiskit]
高级模拟 (QuTiP) pip install unified-quantum[simulation]
可视化 pip install unified-quantum[visualization]
PyTorch 集成 pip install unified-quantum[pytorch]
安装所有可选依赖 pip install unified-quantum[all]

TorchQuantum 后端当前不包含在 PyPI extras 中,需要手动安装:

pip install unified-quantum[pytorch]
pip install "torchquantum @ git+https://github.com/Agony5757/torchquantum.git@fix/optional-qiskit-deps"

不安装 TorchQuantum 不会影响核心功能、QuTiP 模拟、云平台适配器或常规 uniqc.pytorch 功能;只有 TorchQuantum 专用后端与示例会在实际使用时提示缺少该依赖。


CLI Quick Reference

# 查看帮助
uniqc --help

# 本地模拟
uniqc simulate circuit.ir --shots 1000

# 提交到云端(支持 originq / quafu / ibm / dummy)
uniqc submit circuit.ir --platform originq --shots 1000

# 查询任务结果
uniqc result <task_id>

# 配置云平台 Token
uniqc config init
uniqc config set originq.token YOUR_TOKEN

# 也可以用 python -m 调用(等价于 uniqc)
python -m uniqc simulate circuit.ir

Examples

📁 examples/ — Runnable demonstrations

Getting Started

Example Description
Circuit Remapping Build a circuit and remap qubits for real hardware
Dummy Server Submit tasks to the local dummy simulator
Result Post-Processing Convert and analyze results

Algorithms

Example Description
Grover Search Unstructured search with quadratic speedup
Quantum Phase Estimation Eigenvalue phase estimation

Documentation

📖 GitHub Pages

Release Notes


Status

🚧 Actively developing. API may change.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

unified_quantum-0.0.5-cp313-cp313-win_amd64.whl (547.9 kB view details)

Uploaded CPython 3.13Windows x86-64

unified_quantum-0.0.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (625.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

unified_quantum-0.0.5-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (638.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

unified_quantum-0.0.5-cp312-cp312-win_amd64.whl (547.9 kB view details)

Uploaded CPython 3.12Windows x86-64

unified_quantum-0.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (625.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

unified_quantum-0.0.5-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (638.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

unified_quantum-0.0.5-cp311-cp311-win_amd64.whl (547.3 kB view details)

Uploaded CPython 3.11Windows x86-64

unified_quantum-0.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (625.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

unified_quantum-0.0.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (637.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

unified_quantum-0.0.5-cp310-cp310-win_amd64.whl (546.9 kB view details)

Uploaded CPython 3.10Windows x86-64

unified_quantum-0.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (623.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

unified_quantum-0.0.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (636.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

File details

Details for the file unified_quantum-0.0.5-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for unified_quantum-0.0.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 3e1812e74a77aa06746674107204d161584d5a2e41dc756dac07518356da9939
MD5 88a42e867e2894c1afa122e58007b583
BLAKE2b-256 670b89ac5da27fc17cca55e52036200878cf9cf2c5f3b0ae139b9f1cbb879ceb

See more details on using hashes here.

File details

Details for the file unified_quantum-0.0.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for unified_quantum-0.0.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8c3014673a4190633b9940f023612e6447f312a6e5f3be8c673037bbfa77c9a5
MD5 11c90fa974078d23244978e2b19a673d
BLAKE2b-256 c924890514491df35ae7a07aad3f00eaae827c8c340893da9ea60d6aac0c1a00

See more details on using hashes here.

File details

Details for the file unified_quantum-0.0.5-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for unified_quantum-0.0.5-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 c636c43d31c1e7e4f3a2aabb4e5f96f2ac9199fb65ae0269fc94a95eac7f0007
MD5 40ce669be33407b4582de70ead161ee7
BLAKE2b-256 04a55f524a254e902f10eba98ffa5c69e9c8fe4e31169eec83641155e2f1ff6b

See more details on using hashes here.

File details

Details for the file unified_quantum-0.0.5-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for unified_quantum-0.0.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 bd5c2144e55f3f199a3aacb0a1b28645c43f18f3ba0130c3f7b1eab1c30acdd4
MD5 49b3b26ab57e1bd76ddc3f347d29a7be
BLAKE2b-256 932271f737ba38a8b7f18e89d9220954764ce69cd64e4257aa36fa7130caa485

See more details on using hashes here.

File details

Details for the file unified_quantum-0.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for unified_quantum-0.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f0b8b61a56280808a9591431597b35c80e765a395b4bc0bff27d7d644d52afa6
MD5 55b0945b625b68581fba0a65cd927a7c
BLAKE2b-256 33de941995e8a89f7db2c4281c8fb3e351151f31e688d01ecb2defb01bfadd03

See more details on using hashes here.

File details

Details for the file unified_quantum-0.0.5-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for unified_quantum-0.0.5-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 b1310d7837409e270d25b415559238b9553fea31352077585b2021637712cc7b
MD5 0788e201101eb3258a95ad3c1b505a9a
BLAKE2b-256 4951eb3c6af64935eca43cce132a77f73d22922902eb649b67f4392d1a695383

See more details on using hashes here.

File details

Details for the file unified_quantum-0.0.5-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for unified_quantum-0.0.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 be7e58ebae86913af8618e9bd62c89a6cdd6c7caeedc8d3743e120164b1ab877
MD5 530e9550f1df4d5d41f4def15f7d5f9d
BLAKE2b-256 7d566080ef45c3f5e14d8eff431b4af57361dfc8bb5bdeab23c0018733213474

See more details on using hashes here.

File details

Details for the file unified_quantum-0.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for unified_quantum-0.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f8ee5a655634e2d3542ae4edac13db1f026c89336ead6a84faa277fb16dd7dc9
MD5 f2d807bcc9354af5a2bd40faf6142390
BLAKE2b-256 cb1bc9abc2fb5983ff2581e8bcc4a7de38d779aa7154f019f6ca3b3c61218fa6

See more details on using hashes here.

File details

Details for the file unified_quantum-0.0.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for unified_quantum-0.0.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 b780689f03f314d534c6e249414c4d84542482eedaf27084570b9ecf7d4e37ad
MD5 5310479afaa21b9a3c7d509bba0145e1
BLAKE2b-256 8e3bcefe97927c13baa29283154d862de0337cbd1d0fd20d2e42c77160c07bfc

See more details on using hashes here.

File details

Details for the file unified_quantum-0.0.5-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for unified_quantum-0.0.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 6bae1f2bc2a3553e3a1ecb0fbeafb13b0c3f749817ab6814fc59ac6efe5b8bdc
MD5 01cde39bca658e821136ea3579fb7f92
BLAKE2b-256 764c0b041f826efa1fcdd244743602e226437f061c15a92b8e2bee32b293f9fe

See more details on using hashes here.

File details

Details for the file unified_quantum-0.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for unified_quantum-0.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 29adcef20c049c73df4611aa462b80eade910185da298f2623afe7348280dbba
MD5 e8b242045722e637740b22275b42e5f5
BLAKE2b-256 6ee73e5c6bde762d2998e9c93a0be16d76a63abb9bd0dcafa12561bf531bcbbc

See more details on using hashes here.

File details

Details for the file unified_quantum-0.0.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for unified_quantum-0.0.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e8cd6a3779c1ab35295fd9432b8f4a2da2237c9cf9434178887260c43f0fac7e
MD5 e715a8f9aae55d4efcf28e2ca5a0aae2
BLAKE2b-256 265d077192e7b2c37a431172fe7ff703b7ce148cd6ab34873ca93c5c12bf9c98

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page