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. 安装

# 推荐:通过 uv 安装 CLI 工具(全局可用,无需虚拟环境)
uv tool install unified-quantum

# 或从 PyPI 安装 Python 包(提供 Python API)
uv 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

从 PyPI 安装(推荐)

# 安装 CLI 工具(全局可用,无需虚拟环境)
uv tool install unified-quantum

# 安装 Python 包(提供 Python API,可与 uv tool 安装共存)
uv pip install unified-quantum

中国大陆用户推荐配置清华源,可大幅提升下载速度:

# 临时使用(仅本次)
uv pip install unified-quantum --index-url https://pypi.tuna.tsinghua.edu.cn/simple/
# 永久生效
uv pip install --python-preference managed --index-url https://pypi.tuna.tsinghua.edu.cn/simple/

从源码构建

如果你需要开发新版、安装开发版本或启用 C++ 模拟器:

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

# 安装 CLI + Python 包(开发模式,源码可编辑,含全部可选依赖)
uv tool install -e .[all]

# 仅安装 Python 包(开发模式,不含可选依赖)
uv pip install -e . --no-build-isolation

Requirements:

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

如果系统 CMake 版本过低(< 3.26),先升级:

pip install cmake --upgrade

pip 备选方案

pip 不支持 uv tool install 的 CLI 全局安装方式(无需虚拟环境即可全局调用 uniqc 命令)。如无特殊需求,推荐使用上面的 uv 安装方式。

# 从 PyPI 安装
pip install unified-quantum

# 从源码安装
pip install .
pip install -e . --no-build-isolation

可选依赖

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

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

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

uv pip install unified-quantum[pytorch]
uv 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

后端信息查询

# 列出所有可用后端(默认隐藏 unavailable/deprecated)
uniqc backend list

# 显示所有后端(包括 unavailable/deprecated)
uniqc backend list --all

# 显示带保真度信息的表格
uniqc backend list --info

# 查看单个后端详情(含保真度、相干时间、拓扑)
uniqc backend show originq:WK_C180

# 强制刷新后端缓存(update 始终全量拉取最新数据)
uniqc backend update

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.6-cp313-cp313-win_amd64.whl (557.7 kB view details)

Uploaded CPython 3.13Windows x86-64

unified_quantum-0.0.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (635.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

unified_quantum-0.0.6-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (648.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

unified_quantum-0.0.6-cp312-cp312-win_amd64.whl (557.7 kB view details)

Uploaded CPython 3.12Windows x86-64

unified_quantum-0.0.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (635.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

unified_quantum-0.0.6-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (648.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

unified_quantum-0.0.6-cp311-cp311-win_amd64.whl (557.1 kB view details)

Uploaded CPython 3.11Windows x86-64

unified_quantum-0.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (634.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

unified_quantum-0.0.6-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (647.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

unified_quantum-0.0.6-cp310-cp310-win_amd64.whl (556.7 kB view details)

Uploaded CPython 3.10Windows x86-64

unified_quantum-0.0.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (633.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

unified_quantum-0.0.6-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (646.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9aae767d13a3f1447debbc1b65af660eea54d79eabe52349e8a34349ae8c0b32
MD5 643e50b6117cfacfeaf93eb5c0a2e322
BLAKE2b-256 a14b747800cf3cd1505c0ceb248d7473e4bc93d3643e4c313553d3e0a599a5d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 caa89d3a632e634396a37b9a9328c0cfa1ec2d3b369c8a190145c995e6e30496
MD5 3b1d586c9406251419dbe45e62e4251f
BLAKE2b-256 d7dbae5b40e060e0de6bd5ac17a06eb8b44862e7f8b4998a06181c2aa87a6205

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.6-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 580c4c6ce1e5fca2801f1c55eb6ecc50efe66cf43ca63db2ce32b0d9c0dab883
MD5 9c236c77cf332f3e80b8bc096d5402d7
BLAKE2b-256 a8b33b541dfdbe411acbdbf198dc6b74856d5817c74cef04d3bc64811d781e20

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a719e9b6ee9023c31d323321e83276922b2fe0992e8916bd1ef4a8170f0546bf
MD5 5361315774c66068cc3c5ba7050ecd38
BLAKE2b-256 7eaf623d0145d242b602892df8d0379d3bc58ded7138651632e12bb16c981134

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b5f58680ad304567527d34707bad16d1217d235e42049e0fedba8f8b8e3e0261
MD5 5e9af9c3a3f65f448fa3c638616333bc
BLAKE2b-256 4ab973c8537e8fd10ce711999dc334d1f59c6da7aa534f1c9d559219d2cd4d3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.6-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 03e66d5cb8629fc489c868c2f1b70fb7c3680a51e3c11e74cfa9ee2a010bfb0c
MD5 bc07c09e3b4b9b1bba8d953400664735
BLAKE2b-256 53d59943f2ec66e773e44716914f6d6611e96b43df0202a0cb6373f1e39c33d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4583c1a828d5ba301d4e7ccec4c0d563657798c324eb6d49ae34c53e5520ece7
MD5 1dec7f2d24bd54ad6d27aebd78be7ba1
BLAKE2b-256 1987cbf7227d245ee0eaefeb1d759712f21e8d76983e1edfd19becbc65e2be5d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 44fd67a43b5eecfd32a601bbe4676a2ebc70ea3c8d797797d6d5dc673443c098
MD5 eead09ba6b94a3e276934bc3d4ea72d6
BLAKE2b-256 4836f10b2259aa2167d3379be5c0b8f93917f06ab84291085aed498db40c89da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.6-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 6b295ce03a75998354e8f90c089778302c8ed4720f13cf088a7053ff4fdf58ed
MD5 f28793cbe0678daf41f2f00e04802dff
BLAKE2b-256 2bdd802538a8c9381697b4c9e548c22b442f0f3935234197b0bb31fb8489fb9a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f5e40a1955af465a984efeb1745bd4841a9dc6321a1cf49028a290f85c2c7647
MD5 1381a163a7c665fcf51196a390e003a9
BLAKE2b-256 4f9f83e6b209ac75ee41488a7f42d1fc7e1c45924eb5e126c8939b96ada0b2ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 26de9a6a1c0aa6b8dab6f29e6e2372c4bc4e85768af2c15f4d8e6bd0c3d4551c
MD5 b0220594c53a8716b19f2518d531c9b8
BLAKE2b-256 47fb19e5281f77477ffb4123ef58b1c18be2dd7dbbe6d54f8f3454a846eeb554

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.6-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 8dc30c1611997c86bdcc10b4a3c35edd4ef57d2b5bbec2bda321f27073a03e4f
MD5 382db9803306eee29a4270988fa72474
BLAKE2b-256 19ae66aa45d9c699c3f3961c2d6c74f1bd9e8bb63b4d2d4018a27fef9450df97

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