>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 嵌入式 安全
Unknown

开源量子计算软件指南

bDialog

当人们谈论量子计算时,通常会想到 IBM 复杂的低温设备或量子力学中那些晦涩的公式。这让普通开发者觉得无从入手。但实际情况完全不同:现在你只需打开终端,通过 pip 或 cargo 安装几个包,就能在模拟器上运行你的第一个量子算法。

问题在于另一方面。过去五年间,这个领域涌现了大量软件,很容易让人迷失其中。有谷歌和 IBM 这些巨头推出的框架,也有用 C++、Julia、Rust 甚至 OCaml 编写的专业库。为了给这片混沌带来秩序,量子开源基金会(QOSF)整理了 awesome-quantum-software 仓库。这是一个详细、结构化的开源量子编程工具目录。

目录里有什么

仓库创建者并没有简单地把链接堆在一起,而是按应用领域进行了分类。如果你习惯用 Python,这里有几十个现成的库。但如果需要最高的模拟速度,也有支持 CUDA 的 C++ 和 Rust 引擎。

该目录包含大约二十多个类别。以下是大多数开发者最关注的主要领域:

1. 全栈量子框架

这些是每个人入门时都会用到的核心 SDK。它们提供高级 API,用于创建量子电路、操作量子比特,以及向真实硬件或本地模拟器提交任务。

  • IBM 的 Qiskit。可能是最受欢迎的工具,围绕它建立了庞大的社区。
  • 谷歌的 Cirq。专为 NISQ 算法(当前一代噪声中等规模量子处理器的算法)设计。
  • Xanadu 的 PennyLane。对于想要将量子电路与机器学习结合的人来说非常出色,因为该库支持可微分编程,并与 PyTorch 和 TensorFlow 集成。
  • NVIDIA 的 CUDA-Q。用于混合量子-经典计算并提供 GPU 加速的平台。

2. 量子电路模拟器

一台完整的量子计算机造价数百万美元,只能通过云队列访问,因此 95% 的开发和调试工作都在普通 PC 上完成。列表中包含适用于任何技术栈的模拟器:

  • Python:Stim(一个非常快的稳定子电路模拟器)、Dynamiqs(基于 JAX 构建,支持 GPU)。
  • C++:Qiskit AerqsimQuantum++
  • Rust:QCGPURustQIPQuriust
  • 浏览器端:QuirkQuantum JavaScript (Q.js),可以通过拖放方式可视化构建电路。

3. 量子编译器和优化器

量子门存在噪声,量子比特的相干时间仅以微秒计。电路越短,错误越少。编译器负责这类优化工作:

  • TKET(及其 Rust 更新版本 TKET2)。针对特定芯片的拓扑结构优化电路。
  • PyZX。使用 ZX-calculus 形式重写电路,显著减少昂贵双量子比特操作的数量。
  • Mitiq。一种无需更改硬件即可进行量子误差缓解的工具。

4. 量子退火和优化

这是量子计算的一个独立分支,专注于解决组合优化问题:最短路径查找、旅行商问题、投资组合优化。本节包含用于处理 D-Wave 机器和经典 QUBO 问题求解器(如 dimodqubovert)的工具。

5. 后量子密码学与安全

Shor 算法理论上可以破解 RSA 和 ECC,因此密码学界正在快速向抗量子算法过渡。仓库中包含 liboqsPQClean 的链接,以及支持抗量子密钥交换算法的 OpenSSH 和 OpenSSL 分支。

此列表对开发者有何帮助

如果你从事后端、数据分析或移动开发,一个合理的问题出现了:我为什么要打开这个仓库?

首先,这是一个便捷的入门入口。与其阅读过时的文章,不如使用现成的交互式教程(如微软的 Quantum Katas),或者运行基于浏览器的模拟器(如 Quirk)。你可以立即看到正在活跃维护的真实项目。

其次,有一个 Quantum fun 区域,包含实用的游戏。例如 Quandoom(将 DOOM 改编为在量子模拟器上运行)和 Entanglion(解释纠缠原理的开源桌游)。这是理解基本叠加和量子比特测量概念的绝佳方式,无需埋头研读厚重的线性代数教材。

第三,仓库维护者设有 Abandoned projects 部分。超过两年没有提交的项目会被归入此处。这有助于避免在已停止维护的库上浪费时间,也为开源贡献提供了思路:一些较老的仓库架构扎实,但需要更新依赖项。

从哪里开始

如果你想动手实践量子软件,我推荐以下路径:

  1. 在浏览器中玩 Quirk。只需几分钟,你就会理解 Hadamard 门如何将量子比特置于叠加态,以及量子纠缠是如何工作的。
  2. 通过 pip 安装 QiskitPennyLane,创建一个简单的随机数生成电路(QRNG),并在本地模拟器上运行它。
  3. 查看 Unitary Fund 资助计划(链接就在 README 顶部)。该基金会定期为量子开源软件开发提供 $4,000 资助。如果你能在 C++、Rust 或 Python 中编写高性能代码,你的技能在那里肯定会派上用场。

awesome-quantum-software 仓库值得任何想紧跟物理与编程交叉领域技术发展的人收藏。量子行业正逐渐从纯学术研究转向应用开发,开源软件在这一转变中扮演着关键角色。

相关项目