Skip to main content

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

Project description

UnifiedQuantum Banner

UnifiedQuantum

PyPI version codecov Build and Test Quantum | AI

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。

结果格式差异:各平台 wait_for_result() 返回的 result 内层结构不同:

  • OriginQ / Dummy:{"00": 512, "11": 488}(扁平 {bitstring: shots} dict)
  • Quafu:{"counts": {"00": 512, "11": 488}, "probabilities": {...}}(嵌套 dict)
  • IBM:[{"00": 512}, {"01": 300}](counts dict 的列表,批量时每个电路一个元素) 详见平台约定文档

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


关于我们

UnifiedQuantumIAI-USTC-Quantum 团队开发和维护。

欢迎提交 Issues、Pull Request,或通过邮件联系我们。如果您对量子计算研究感兴趣,欢迎加入我们。


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

Uploaded CPython 3.13Windows x86-64

unified_quantum-0.0.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (695.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

unified_quantum-0.0.7-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (708.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

unified_quantum-0.0.7-cp312-cp312-win_amd64.whl (618.2 kB view details)

Uploaded CPython 3.12Windows x86-64

unified_quantum-0.0.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (695.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

unified_quantum-0.0.7-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (708.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

unified_quantum-0.0.7-cp311-cp311-win_amd64.whl (617.6 kB view details)

Uploaded CPython 3.11Windows x86-64

unified_quantum-0.0.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (694.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

unified_quantum-0.0.7-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (707.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

unified_quantum-0.0.7-cp310-cp310-win_amd64.whl (617.2 kB view details)

Uploaded CPython 3.10Windows x86-64

unified_quantum-0.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (693.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

unified_quantum-0.0.7-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (706.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 841dd1ad236b65a32742e427717f46ef17030222ec9a271ec85e057a7fa5822b
MD5 ff704a940b587c2aa4f659a3ac13fa7d
BLAKE2b-256 fa083e6bae8527ae4a99d250827f5f366894ca21b646a8e3145af7947e2c6c83

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b06d1a7fd4f2a2b7b9e69e6ce963c2d8e1c675288dd1f641aa25c64219322942
MD5 325ae26ea54fcc55b8394d8834b9f2d8
BLAKE2b-256 e53dede7b6bae0d12eedfd674a706eb821644b41cbb0e49e9f35bc905eee9bf8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.7-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 def87bf20d47acf23346357918ecbc2bfc406171a70aad6470b167ab09f9cb5d
MD5 55c48d15710d205f2f0a7377711cae40
BLAKE2b-256 a63ca84f4238c81c1792f687d9507ea05525d3313f974be270ef1badadcb6de1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d8a34563879251ec3938bfcb30dbe70a0c0ec83ca93fa08f2a2ae67c1df9b4fd
MD5 5568c794896e0bc66a3c2956fae18b1f
BLAKE2b-256 908e621a8dc8012e4459bb4ff837bd28bf12b9b11d65e49f2401aca4d3bc9ea6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2ffb0a6304976aa0ef3784acb36fc19adec47d254ed3869fc398fcd3d7b785a2
MD5 7c0ca0c384d9f20e4639bf821a614762
BLAKE2b-256 cf932d4ed96777c0453a2fae3fa5154a0953db235947dc1e2279bdce65d9b669

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.7-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 5501d1e7c69acb43871ef5f034ec54fab3670253dd42e221964b8ee8352e0989
MD5 16bac4f1badde27cac46d4e2f11bea29
BLAKE2b-256 9bfa6e8b1e6b7458a2178aab940afb524231689a70faf53d6d93ca03f3983732

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2d7b2993eb652405354c60c762b9b73ea57932582761ef2fb42049ebac457d25
MD5 3a84024dcfe48e6669389677d6930a40
BLAKE2b-256 182133f89c208b453b275b71b69773796a37ee273ba783726058fc102e233e01

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 089861c139e6fd9ac656447bceda70a5a79ef98e69b8e3940e5567d0a052fa79
MD5 c501332f9db13010ee96561c9a3f7e94
BLAKE2b-256 bd6d5fb6c17d4409b8597c85bf07c37e606ee4a9ebda12eb437ee498efdbae57

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.7-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 593ad31e989beb6b8dd224ae6f0b9960fbc0e6420511b26d94ff59acd074c46f
MD5 5fca334b96d1d877303aa60a4e063f87
BLAKE2b-256 bd848f0123c57f6b938c85b484246967dec84ec3526561f616206a836559bbfc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 8f93685854b4db49f0f09d249c310b64ee2403b95a4370d3a2c2049853480374
MD5 9c3b9bc5048ef4b5e51bac22c88cf2fc
BLAKE2b-256 b0859ab65096dd6cc18bc743a8f2d1388a52c878d83374de0f7c77b4b6f3b57f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f1d623f74e2925e15129ed303cfcb09d8eea4e012bc645b90a8c7ec7ad525dc6
MD5 4059add4b3329300e901a351bdf3d678
BLAKE2b-256 f4c6df2525e9df30e04b9b6cbae9a3da7ba812d83eaa75d0245e6a57a78dfcc1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.7-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 aee3a06cfe1920d178bc8ec423e43fca9fd8428ea9b693bd7648c7f99bedd1f2
MD5 2a94822e6178089f904e8767ce22fa3e
BLAKE2b-256 934239b5e55f1487686f56f11da41b7646d90a72da4a4785894534e31fbe58a4

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