你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 Azure Quantum 作业
在 Azure Quantum 中运行量子程序时,可以创建并运行 作业。 创建和运行作业的步骤取决于作业类型和提供程序,以及 target 为工作区配置的。
作业属性
所有作业都具有以下通用属性:
属性 | 说明 |
---|---|
ID | 作业的唯一标识符。 它在工作区中必须独一无二。 |
提供程序 | 你希望运行作业的主体。 |
Target | 你希望运行作业的对象。 例如,提供商提供的确切量子硬件或量子模拟器。 |
Name | 用户定义的名称,可帮助组织作业。 |
Parameters | 的 targets可选输入参数。 有关可用参数的定义,请参阅所选 target 文档。 |
创建作业后,可以使用有关其状态和运行历史记录的各种元数据。
作业生命周期
编写量子程序后,可以选择 target 并提交作业。
此图显示了提交作业后的基本工作流:
首先,Azure Quantum 会将作业上传到工作区中配置的 Azure 存储帐户。 然后,作业将添加到作业中指定的提供商的作业队列。 随后,Azure Quantum 将下载程序,并为提供商进行转换。 提供商处理作业,并将输出返回 Azure 存储,你可以在其中下载输出。
监视作业
提交作业后,可以监视作业的状态。 作业具有以下可能的状态:
状态 | 描述 |
---|---|
正在等待 | 作业正在等待运行。 某些作业将在等待状态下执行预处理任务。 waiting 始终是第一个状态,但是,作业可能会先转到 executing 状态,然后你才能观察到 waiting 状态的作业。 |
正在执行 | 当前 target 正在运行作业。 |
succeeded | 作业已成功完成,并且输出可用。 这是最终状态。 |
失败 | 作业已失败,并提供了错误信息。 这是最终状态。 |
已取消 | 用户请求取消作业运行。 这是最终状态。 有关详细信息,请参阅本文中的作业取消。 |
succeeded
、failed
和 cancelled
状态被视为“最终状态”。 作业处于这些状态之一后,不会再对作业进行任何更新,并且相应的作业输出数据不会更改。
此图显示了可能的作业状态转换:
作业成功完成后,它会显示一个指向 Azure 存储帐户中输出数据的链接。 访问此数据的方式取决于用于提交作业的 SDK 或工具。
如何监视作业
可以通过 Python、Azure 门户和 Azure CLI 监视作业。
作业的所有属性都可访问 job.details
。 例如,可以访问作业名称、状态和 ID,如下所示:
print(job.details)
print("\nJob name:", job.details.name)
print("Job status:", job.details.status)
print("Job ID:", job.details.id)
{'additional_properties': {'isCancelling': False}, 'id': '0fc396d2-97dd-11ee-9958-6ca1004ff31f', 'name': 'MyPythonJob', 'provider_id': 'rigetti'...}
Job name: MyPythonJob
Job status: Succeeded
Job ID: fc396d2-97dd-11ee-9958-6ca1004ff31f
作业计数
若要获取大量作业产生的计数,可能需要执行工具的Quantum Development Kit本地安装。 通过本地安装,可以本地存储作业 ID。
可以复制以下代码以获取作业列表及其结果:
for job in workspace.list_jobs():
print(job.id, job.details.name, job.details.output_data_uri)
作业取消
如果作业尚未处于最终状态(例如 succeeded
failed
或 cancelled
),则可以请求取消作业。 如果作业处于 waiting
状态,则所有提供商都会取消该作业。 但是,如果作业处于 executing
状态,则并非所有提供商都支持取消作业。
注意
如果在作业开始运行后取消该作业,帐户可能仍需要支付该作业的部分或全部费用。 请参阅所选提供商的计费文档