Skip to main content

用于 IonQ 后端的 Qiskit 提供商

项目描述

Qiskit IonQ 提供程序

IonQ 徽标

执照

Qiskit是一个开源 SDK,用于在电路、算法和应用模块级别与量子计算机一起工作。

该项目包含一个允许访问IonQ离子阱量子系统的提供程序。

示例 python 笔记本(在 中/example)应该可以帮助您了解基本用法。

API 访问

IonQ 提供程序使用 IonQ 的 REST API,并且使用提供程序需要来自 IonQ 的 API 访问令牌。如果您想将 IonQ 用作 Qiskit 供应商,请联系sales@ionq.co索取有关获得 IonQ API 访问权限的更多信息。

安装

:information_source: Qiskit IonQ Provider 需要 qiskit-terra>=0.17.4!

为确保您使用的是最新版本,请运行:

pip install -U "qiskit-terra>=0.17.4"

您可以使用 pip 安装提供程序:

pip install qiskit-ionq

提供者设置

要实例化提供者,请确保您拥有访问令牌,然后创建提供者:

from qiskit_ionq import IonQProvider

provider = IonQProvider("token")

凭据环境变量

或者,IonQ Provider 可以从环境变量中发现您的访问令牌:

export QISKIT_IONQ_API_TOKEN="token"

然后在没有任何参数的情况下调用实例化提供程序:

from qiskit_ionq import IonQProvider

provider = IonQProvider()

一旦提供者被实例化,它就可以用来访问支持的后端:

# Show all current supported backends:
print(provider.backends())

# Get IonQ's simulator backend:
simulator_backend = provider.get_backend("ionq_simulator")

提交电路

一旦指定了后端,就可以使用它来提交电路。例如,运行贝尔状态:

from qiskit import QuantumCircuit

# Create a basic Bell State circuit:
qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure([0, 1], [0, 1])

# Run the circuit on IonQ's platform:
job = simulator_backend.run(qc)

# Print the results.
print(job.get_counts())

# The simulator specifically provides the the ideal probabilities and creates
# counts by sampling from these probabilities. The raw probabilities are also accessible:
print(job.get_probabilities())

基门和转译

IonQ 提供程序提供对完整 IonQ Cloud 后端的访问,其中包括其自己的转译和编译管道。因此,IonQ 提供者后端有一套他们可以接受的广泛的“基础门”——实际上是 IonQ API 可以接受的任何东西。它们是ccx, ch, cnot, cp, crx, cry, crz, csx, cx, cy, cz, h, i, id, mcp, mct, mcx, measure, p, rx, rxx, ry, ryy, rz, rzz, s, sdg, swap, sx, sxdg, t, tdg, toffoli, x, y和z。

如果您想在 IonQ 后端上运行使用除此之外的其他门(u或iswap例如)的电路,您将需要手动重写电路以仅使用上述列表,或使用 Qiskit 转译器,根据下面的例子。请注意,并非所有电路都可以自动转译。

如果您想要更低级别的访问——在本地门中编程并跳过我们的编译/转译管道的能力——请联系您的 IonQ 联系人以获取更多信息。

from qiskit import QuantumCircuit, transpile
from math import pi

qc2 = QuantumCircuit(1, 1)
qc2.u(pi, pi/2, pi/4, 0)
qc2.measure(0,0)
transpiled_circuit = transpile(qc2, simulator_backend)

贡献

如果您想为 IonQ Provider 做出贡献,请查看贡献指南。该项目遵守 Qiskit 社区行为准则。参与即表示您同意遵守本准则。

如果您有增强请求或错误报告,我们鼓励您在此 repo 的问题跟踪器中打开一个问题。如果您有支持问题或一般性讨论主题,我们建议您在Qiskit 社区 slack(您可以使用此链接加入)或Quantum Computing StackExchange 上提问。

运行测试

这个包使用pytest测试运行器,以及其他用于模拟交互、报告覆盖率等的包。这些可以使用pip install -r requirements-test.txt.

要直接使用 pytest,只需运行:

pytest [pytest-args]

或者,您可以通过运行测试来使用 setuptools 集成setup.py,例如:

python setup.py test --addopts="[pytest-args]"

夹具

测试套件的全局 pytest 固定装置可以在顶级test/conftest.py文件中找到。

文档

要构建 API 参考和快速入门文档,请运行:

pip install -r requirements-docs.txt
make html
open build/html/index.html

执照

阿帕奇许可证 2.0。

IonQ 徽标和 Q 标志是 IonQ, Inc. 的版权。保留所有权利。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

qiskit-ionq-0.3.7.ta​​r.gz (32.7 kB 查看哈希)

已上传 source

内置分布

qiskit_ionq-0.3.7-py3-none-any.whl (35.8 kB 查看哈希)

已上传 py3