量子计算

Qiskit 可直接从 Fortran、C++ 和 Julia 构建量子线路,无需 Python

IBM 宣布,基于 Rust 内核构建的 Qiskit C 接口支持从 Fortran、C++ 和 Julia 使用该开发套件,无需 Python 层。此项变更旨在将量子线路直接集成到高性能计算和科学模拟工作流中。

2026-10-06
2 分钟阅读
4 浏览量
certi.news Editorial Team
Qiskit 可直接从 Fortran、C++ 和 Julia 构建量子线路,无需 Python

IBM 将 Qiskit 的入口扩展到 Python 之外,支持通过统一的 C 接口从 Fortran、C++ 和 Julia 使用 Qiskit,并连接到以 Rust 编写的高性能内核。该公司表示,这种设计允许在现有应用中直接构建和运行量子线路,无需嵌入 Python 解释器,也无需将数据转换为 Python 对象。

这项功能自 Qiskit 2.0 起提供;该版本公布了面向开发套件底层数据模型的 C 接口。由于这三种语言绑定使用同一个共享的 Qiskit 库,因此原则上,在一种语言中创建的线路可以传递给另一种语言,例如 C++ 和 Fortran,同时保留同一个对象。

通往 Qiskit 的三种路径

对于 Fortran,IBM 提供了 qiskit-fortran 接口,用于构建和操作线路,并利用标准的 iso_c_binding 机制调用 C 接口。线路使用一种派生类型,当变量离开作用域时会释放内存。此外,还可以将量子化学应用中原本已存储在 Fortran 内存中的 Hamiltonian 等数据,直接传递给线路构建过程,无需复制到 Python 或重新分配内存。

至于 qiskit-cpp,IBM 于上一年首次宣布了这一接口;它是一个仅通过头文件提供的 C++ 接口。程序可以链接到 Qiskit C 库,而线路对象的内存会在其离开作用域时自动管理。IBM 提到,可以通过 qiskit-ibm-runtime 的 C 客户端,或通过 QRMI 和 SQC,发送量子线路。

Qiskit.jl 和 QiskitIBMRuntime.jl 为 Julia 用户提供了交互式路径,包括在 Jupyter notebook 中工作以及访问 IBM Quantum 硬件。这两个软件包隐藏了 C 指针的细节,同时支持以接近 Python 中 Qiskit 的方式创建和运行线路,但需要注意的是,Julia 从 1 开始对量子比特编号,而 Python 从 0 开始编号。

实际发生了哪些变化?

新接口面向那些科学应用依赖 Fortran、C++ 或 Julia 的研究人员,尤其是从事模拟、物理、化学、工程和高性能计算的研究人员。与其将 Qiskit 作为独立进程运行,或使用 Python 协调每一步,不如在同一个经典应用中,将量子线路作为已链接的过程调用。这包括构建线路、针对特定硬件进行优化、将线路发送到硬件,以及处理结果。

IBM 通过 Julia 中的一个示例说明了这一流程:在最多 100 个量子比特的系统上模拟横向场伊辛模型。该示例使用 Trotterization 近似薛定谔方程的演化,然后优化线路,在硬件上运行线路并计算各位置的磁化强度。该示例的概念性结果表明,减小 Trotter 步长会降低近似误差,但会增加线路深度,最终可能导致更大的硬件噪声,其影响超过提高精度所带来的收益。

限制与悬而未决的问题

IBM 强调,所有非 Python 语言绑定仍在积极开发中,因此公告并未提供最终稳定的接口,也未提供详细的性能对比结果。此外,100 个量子比特的示例并不意味着突破了量子计算的实际限制;随着纠缠程度增加,使用张量网络的经典模拟参考会变得不那么可靠,而执行精度仍取决于 Trotter 误差和硬件噪声。

这里的核心价值在于降低将量子资源集成到现有 HPC 代码中的编程摩擦,而不是本身提供新的量子能力。接口的影响将取决于软件包的成熟度、它们与现有研究环境的集成程度,以及量子硬件能否提供超越经典替代方案的结果。

新闻来源
IBM Quantum Blog
查看原始来源 ↗
c
作者

certi.news Editorial Team

同一分类

你可能还喜欢

查看所有新闻