46 个版本 (12 个重大更改)

0.17.0 2024 年 7 月 22 日
0.16.3 2024 年 5 月 22 日
0.15.0 2024 年 3 月 25 日
0.12.0 2023 年 12 月 12 日
0.5.4 2022 年 7 月 20 日

#64 in 模拟

Download history 3/week @ 2024-04-28 125/week @ 2024-05-19 18/week @ 2024-05-26 168/week @ 2024-06-02 29/week @ 2024-06-09 3/week @ 2024-06-16 121/week @ 2024-06-23 15/week @ 2024-06-30 166/week @ 2024-07-21 221/week @ 2024-07-28

每月 387 次下载

Apache-2.0

445KB
6.5K SLoC

qoqo-qryd

GitHub Workflow Status PyPI PyPI - Format Crates.io Crates.io

qoqo-qryd Python 包实现了用于支持 qoqo 在量子计算机和 QRydDemo 项目中的量子计算机模拟器的模块。

QRydDemo 项目基于 Rydberg 原子构建量子计算机。qoqo 是由 HQS Quantum Simulations 提供的量子计算工具包。

qoqo-qryd 包包含以下功能

当前 QRydDemo WebAPI 的接口

目前 QRydDemo WebAPI 允许访问不同设备拓扑的量子硬件模拟器。qoqo-qryd 支持与相应的 REST-API 的低级调用以及 qoqo 量子程序的高级后端。为此,它提供了用于评估 qoqo 量子程序的 APIBackend 和表示模拟器上可用设备的 api_devices 模块。

QRydDemo 特定的硬件操作(原型)

基于 Rydberg 原子的量子设备支持,原则上支持在其他量子硬件中不常见的一些操作。设备拓扑结构的变化是这些操作之一。qoqo-qryd 通过其 pragma_operations 模块中的操作,将设备拓扑结构变化的支持添加到 qoqo 中。请注意,这是一个预览原型,并不代表 QRydDemo 硬件上最终的操作集合。

支持特定硬件操作的本地区域模拟器

qoqo-qryd 包含一个基于 QuEST 的本地模拟器,该模拟器支持 Rydberg 特定的量子操作。该模拟器旨在使用附加操作让用户测试量子硬件的能力。qoqo-qryd 通过 qoqo 兼容的 SimulatorBackend 后端提供模拟器,该后端使用其在 qryd_devices 模块中的设备原型。请注意,模拟器的设备不代表 QRydDemo 的最终设计。

访问 QRydDemo WebAPI

要使用 WebAPI,需要 QRydDemo 账户。用户可以通过 在线注册表单 进行注册。

安装

qoqo-qryd 软件包以源代码分发的形式在 PyPi 上提供,并且作为 x86 平台上适用于 Linux 和 macOS 的预编译轮文件。其他平台需要从源代码分发进行安装。

对于源代码分发和预构建轮文件,可以通过以下方式安装

pip install qoqo-qryd

从源码构建 qoqo-qryd 需要 rust、maturin 和 cmake 在本地安装。我们建议使用 rustup 来设置 rust 工具链。pip 命令还应该自动安装 maturin 以在本地构建 Python 软件包并安装它。

要快速安装依赖项,您还可以使用

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
pip install maturin

文档

用户文档可在 github pages 上提供,地址为 https://hqsquantumsimulations.github.io/qoqo_qryd/。qoqo-qryd 的 API 文档可在用户文档的附录中找到。

示例

在 QRydDemo 项目的 GitHub 仓库中可以找到一系列 示例 Python 脚本。这些示例包括

  • howto_webapi_qoqo.ipynb 提供了一个使用 qoqo 访问 QRydDemo 模拟器的示例。
  • switch_layout_example.py 展示了如何构建 QRydDemo 设备并使用 PragmaChangeQrydLayout 操作在量子电路中切换布局。
  • shift_qubits_example.py 展示了如何构建 QRydDemo 设备并使用 PragmaShiftQrydQubit 操作在量子电路中的 tweezer 位置之间移动量子比特。
  • multi_qubit_example.py 展示了如何使用多量子比特操作。
  • serialisation_example.py 展示了如何将量子程序序列化为 JSON 格式。

OpenSSL

与使用 OpenSSL 进行 http 请求相关的致谢

"此产品包括由 OpenSSL 项目开发并用于 OpenSSL 工具包的软件(http://www.openssl.org/)."

此产品包括由 Eric Young ([email protected]) 编写的加密软件。此产品包括由 Tim Hudson ([email protected]) 编写的软件。

依赖项

~17–30MB
~513K SLoC