Qiskit用于访问IBM Quantum的量子设备和模拟器
项目描述
Qiskit IBM Quantum Provider (现已弃用)
请注意: 自2023年1月发布的版本0.20.0起,qiskit-ibmq-provider
已被弃用,其支持将于该日期起3个月后结束,最终存档不会早于该日期。由 qiskit-ibmq-provider
提供的功能不会消失,而是已经拆分到单独的存储库中。请参阅下面的迁移指南部分以获取更多详细信息。我们鼓励您尽快迁移。
Qiskit 是一个开源SDK,可在电路、算法和应用模块级别与量子计算机交互。
此模块包含一个提供程序,可访问 IBM Quantum 系统和模拟器。
迁移指南
qiskit-ibmq-provider
提供的所有功能都已迁移到其他软件包
以前 | 当前软件包 | 详情 | 迁移指南 |
---|---|---|---|
qiskit.providers.ibmq.experiment |
qiskit-ibm-experiment (暂无文档) |
与IBM Quantum实验数据库服务相关的功能。 | 指南 |
qiskit.providers.ibmq.runtime |
qiskit-ibm-runtime (文档) |
如果您希望获得高质量的概率分布或期望值,而不必自己优化电路或减轻结果,请使用此软件包。 | 指南 |
其余的 qiskit.providers.ibmq |
qiskit-ibm-provider (文档) |
如果您需要直接访问后端以进行设备特性化等实验,请使用此软件包。 | 指南 |
这些软件包可以单独安装(通过标准pip install命令,例如pip install qiskit-ibm-provider
),并且不是Qiskit元软件包的一部分。
安装
我们鼓励您通过PIP工具(一个Python软件包管理器)安装Qiskit,它将安装所有Qiskit元素和组件,包括此组件。
pip install qiskit
PIP将为我们自动处理所有依赖项,并且您将始终安装最新(且经过良好测试)的版本。
要从源安装,请遵循贡献指南中的说明。
设置IBM量子提供程序
一旦安装了该软件包,您就可以从Qiskit访问提供程序。
注意:自2019年11月以来(以及此
qiskit-ibmq-provider
软件包的0.4
版本和qiskit
软件包的0.14
版本),不再支持旧版量子体验或QConsole(v1)账户。如果您仍在使用v1账户,请按照更新说明中的步骤更新您的账户。
配置您的IBM量子凭证
-
通过访问IBM量子登录页面创建IBM量子账户或登录到您现有的账户。
-
从您的IBM量子账户页面复制(并/或可选地重新生成)您的API令牌。
-
从步骤2获取您的令牌,在此处称为
MY_API_TOKEN
,并运行from qiskit import IBMQ IBMQ.save_account('MY_API_TOKEN')
上述命令将您的凭证本地存储在名为
qiskitrc
的配置文件中。默认情况下,此文件位于$HOME/.qiskit
,其中$HOME
是您的家目录。如果您仍在使用Qconfig.py
,请删除该文件并运行上述命令。
访问您的IBM量子后端
调用IBMQ.save_account()
后,您的凭证将存储在磁盘上。一旦存储,您可以在未来的任何时刻通过以下方式加载并使用它们在您的程序中
from qiskit import IBMQ
provider = IBMQ.load_account()
backend = provider.get_backend('ibmq_qasm_simulator')
或者,如果您不想将凭证保存到磁盘上,并且只想在当前会话中使用它们,您可以使用
from qiskit import IBMQ
provider = IBMQ.enable_account('MY_API_TOKEN')
backend = provider.get_backend('ibmq_qasm_simulator')
默认情况下,所有IBM量子账户都可以访问同一个公开项目(中心:ibm-q
,组:open
,项目:main
)。为了方便起见,IBMQ.load_account()
和IBMQ.enable_account()
方法将返回该项目的提供程序。如果您可以访问其他项目,您可以使用
provider_2 = IBMQ.get_provider(hub='MY_HUB', group='MY_GROUP', project='MY_PROJECT')
更新到新的IBM量子
自2019年11月以来(以及此qiskit-ibmq-provider
软件包的0.4
版本),IBM量子提供程序仅支持新的IBM量子,不再支持旧版量子体验和Qconsole账户。新的IBM量子也称为v2
,而旧版和Qconsole称为v1
。
本节包括更新您的账户和程序的说明。请注意,
- IBM量子体验
v1
凭证和为0.3版本之前编写的程序在0.3.x
系列中仍将有效。从0.4版本开始,仅支持v2
凭证,建议进行升级以利用新功能。 - 更新您的IBM量子
v2
凭据意味着您需要更新您的程序。下文包含有关如何执行转换的说明。
更新您的IBM量子凭据
如果您在磁盘上存储了旧版量子体验或Qconsole的凭据,可以使用IBMQ.update_account()
辅助程序。此辅助程序将读取您存储在磁盘上的当前凭据并尝试将其转换
from qiskit import IBMQ
IBMQ.update_account()
Found 2 credentials.
The credentials stored will be replaced with a single entry with token "MYTOKEN"
and the new IBM Quantum v2 URL (https://auth.quantum-computing.ibm.com/api).
In order to access the provider, please use the new "IBMQ.get_provider()" methods:
provider0 = IBMQ.load_account()
provider1 = IBMQ.get_provider(hub='A', group='B', project='C')
Note you need to update your programs in order to retrieve backends from a
specific provider directly:
backends = provider0.backends()
backend = provider0.get_backend('ibmq_qasm_simulator')
Update the credentials? [y/N]
确认后,您的凭据将被覆盖为有效的IBM量子v2凭据集。对于更复杂的情况,请考虑通过IBMQ.delete_accounts()
删除之前的凭据,并按照IBM量子账户页面中的说明操作。
更新您的程序
新的IBM量子支持还引入了一种更结构化的方法来访问后端。之前,所有后端的访问都是通过以下方式集中进行的:
IBMQ.backends()
IBMQ.get_backend('ibmq_qasm_simulator')
从版本0.3
开始,访问后端的首选方式是通过Provider
访问您的一个项目,而不是直接通过全局IBMQ
实例,从而允许对您使用的项目进行更细粒度的控制
my_provider = IBMQ.get_provider()
my_provider.backends()
my_provider.get_backend('ibmq_qasm_simulator')
在类似的精神下,您可以通过以下方式检查您有权访问的提供者:
IBMQ.providers()
此外,由于新的IBM量子只提供一组凭据,因此IBMQ中的账户管理方法现在采用单数形式。例如,您应使用IBMQ.load_account()
而不是IBMQ.load_accounts()
。如果您尝试使用旧方法与IBM量子v2账户一起使用,将引发IBMQAccountError
异常。
以下表格包含两个版本之间差异的快速参考。请参阅每个方法的文档以获取更深入的信息。
账户管理
<0.3 / v1凭据 | >=0.3和v2凭据 |
---|---|
N/A | IBMQ.update_account() |
IBMQ.save_account(token, url) |
IBMQ.save_account(token) |
IBMQ.load_accounts() |
provider = IBMQ.load_account() |
IBMQ.enable_account() |
provider = IBMQ.enable_account() |
IBMQ.disable_accounts() |
IBMQ.disable_account() |
IBMQ.active_accounts() |
IBMQ.active_account() |
IBMQ.stored_accounts() |
IBMQ.stored_account() |
IBMQ.delete_accounts() |
IBMQ.delete_account() |
使用后端
<0.3 / v1凭据 | >=0.3和v2凭据 |
---|---|
N/A | providers = IBMQ.providers() |
backend = IBMQ.get_backend(name, hub='HUB') |
provider = IBMQ.get_provider(hub='HUB') |
backend = provider.get_backend(name) |
|
backends = IBMQ.backends(hub='HUB') |
provider = IBMQ.get_provider(hub='HUB') |
backends = provider.backends() |
贡献指南
如果您想为IBM量子Provider做出贡献,请查看我们的贡献指南。此项目遵守Qiskit的行为准则。通过参与,您将遵守此准则。
我们使用GitHub问题来跟踪请求和错误。请使用我们的slack进行讨论和简单问题。要加入我们的Slack社区,请使用Qiskit.org上的邀请链接。对于更适合论坛的问题,我们使用Stack Exchange中的Qiskit
标签。
下一步
现在您已经设置完毕,可以查看我们Qiskit教程存储库中的其他示例。
作者和引用
Qiskit IBM量子Provider是许多不同层级为项目做出贡献的人的成果。如果您使用Qiskit,请按照包含的BibTeX文件引用。
许可证
项目详细信息
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
构建分发
qiskit-ibmq-provider-0.20.2.tar.gz的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | f343025ca1ddaa6aad071e53f5b4c60df798aff0f3681266a8de35e933e61a9c |
|
MD5 | a7da909a0cdfdf0868ea780a26378a65 |
|
BLAKE2b-256 | ed27f122ae1061eb2f06961181eaa5222fb91b53a4bc511354cdecdb71a9ce04 |
qiskit_ibmq_provider-0.20.2-py3-none-any.whl的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 4f669b93f7d3d1e7b9439399cb1fa391083ea4ae81331f69d8269a9d4539b76a |
|
MD5 | 22da3a4828af245207646f09fbb126a8 |
|
BLAKE2b-256 | a2adf0af9c18c198f8c6e29657bfa7b24c6cd0a8cd75b79ba2ba7d2a97585380 |