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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.7.post1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 aad4ee43474261823f6a4df5bad61ef6567c23755452fc602aa63ab8ef641ba2
MD5 0413bfb7640ca97d920b1fee7c2f3716
BLAKE2b-256 701c42e2348b5d1fabc732b62c3bc049499c77385ce7b0349f8f2889df69424a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.7.post1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 04c2f33180b9e249727c7e7cc7fde667eaee6cf8255030437d47ef774a5efe2d
MD5 805911c25822744b5aad9913ead2013c
BLAKE2b-256 122126ccfacd863203db77fc82d603e30ed4333d79b5faf51d80863d27f8c016

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.7.post1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 afeba6749c030ab904d8affd1442d09f0277b92966d0551848236e61dc36419a
MD5 7196542de394742d7cc23972b072ebcf
BLAKE2b-256 85b3609c5878657b4e2eced7849964d0e7ce5e528226b1c04742d8ef6d3aae65

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.7.post1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e001b560ac671a06d57d851a49e7931f1e865673fb2b7b45dec5627a14c549d1
MD5 412ff6c0c9b81c185fb422f59f2e10f4
BLAKE2b-256 d4f89a3155649f8e93a6f8f003a681135358ba39fa4a891589c28c3a06ad8fb1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.7.post1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e66ce58cf1d6f03c8f8ade30b3ee7d2d3e4ee47fb6c807adf4dda90f9d7f708f
MD5 3e644873bb5a3eeefacd4c03c5851425
BLAKE2b-256 07027d9f625fe1e89714dd6acd249d510b4f17902819e3c9f0162992cfcfaf6a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.7.post1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 1a64ea8a34dec9d484d023a3f57e3b16065af08f08179de6a59ff3392ce2e870
MD5 b3e8fce725e40d1f6d97e4792d32273c
BLAKE2b-256 7094bc46e9e83d0fe7a32823cd7b4515e147bfb929c99dc831274d33b7381ccc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.7.post1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8d1f8f10c005d84f1745b11b9ba54712a0235215ee9555a4ed6b7082b0896b8f
MD5 325b24203fa7f268dac7e62248ea30db
BLAKE2b-256 a9dcd3c428e789b1270197ade41d48a2de37cc08f202629777d8237138ee9e90

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.7.post1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 51aa04e20606c2fbee17fa6e6f86d99fc24f455e3325007f2899c3614d25bc97
MD5 69eec330484d31a97e70c0266382185e
BLAKE2b-256 1ba6185e0b91ad6c0b9e9ab1d7ab799c42a4959719318489b15b5f238b926a9e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.7.post1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 fc2ee714dd3232099caa2fe968c635d0fe59af0a34f3fda182faf9a7166ae067
MD5 02711a1a1e35bcd94ad0039688fe0293
BLAKE2b-256 782666bebe8d6289dbb83b938cfb13a53f8661fdb7d09b2ec450146c2b47fcee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.7.post1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9f967ddd36c18e0f3f24ada0b1683334fd76d9494863688f49cd33e6139f2e95
MD5 70c95977538e95d186f32dd46b2ad40d
BLAKE2b-256 8983f97b2d4bb590b1fc9a57419c3b02cf2cb774772e61d9b236c1581abc0a68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.7.post1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2fe2980bd9b05b0a58013e1293043d6e5aaac8da2f6003e701d382cf8ce2470c
MD5 14151cf91955c9c401d9a20a4c822edf
BLAKE2b-256 464680b0266a3360d605df8a02fb881fa5925625973f7dc37434f3e2aaf901b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for unified_quantum-0.0.7.post1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 78dcf2c37077b05ca9c1c93687643f6f9df640d74cc8985718092d55bd776613
MD5 e67a2535617f0fb927197b0aff730ea7
BLAKE2b-256 7a93dd1745941cd2c2f10095f2fcb5997435ce683087c69b8c9780993e7a6523

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