IBM Cloud Docs
运行作业

运行作业

本教程将指导您完成使用程序在 IBM Quantum 计算机上运行作业并返回作业状态的步骤。

全新的 IBM 量子平台界面已发布,处于抢先体验模式。 建议您开始使用该界面来使用 IBM Quantum服务。 因为它是建立在 IBM Cloud 上的,所以迁移非常简单。 详情请参阅 迁移指南

准备工作

您需要一个回路来提交到程序。 要了解如何使用 Qiskit 创建电路,请参阅 将问题映射到量子电路和算子指南。

运行作业

您将使用 Qiskit Runtime QiskitRuntimeService.run() 方法,该方法需要以下参数:

  • program_id: 要运行的程序的标识。
  • 输入: 程序输入参数。 这些输入值将传递到运行时程序,并且取决于为程序定义的参数。
  • options: 运行时选项。 这些选项控制执行环境。 目前,唯一可用的选项是 backend_name,这是可选的。
  • result_解码器: 用于对作业结果进行解码的可选类。

在以下示例中,我们向采样器程序提交一个电路:

from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2 as Sampler
from qiskit import QuantumCircuit

service = QiskitRuntimeService()

bell = QuantumCircuit(2)
bell.h(0)
bell.cx(0, 1)
bell.measure_all()

# Execute the Bell circuit
backend = service.backend("ibmq_qasm_simulator")
sampler = Sampler(backend=backend)
job = sampler.run([(bell,)])
result = job.result()

pub_result = result[0]
# Get counts from the classical register "meas".
print(f" >> Counts for the meas output register: {pub_result.data.meas.get_counts()}")

或者,可以使用 运行作业 API; (可选) 使用 Swagger。 必须指定要运行的程序标识和后端,并且可以选择提供参数。 记下返回的作业标识。 您需要此信息来检查状态和查看结果。

为确保公平性,存在每个 Qiskit Runtime 作业的最大执行时间。 如果作业超过此时间限制,那么将强制结束该作业。 最大执行时间是 1)QPU 限制和 2)程序定义的 max_execution_time 中较小的一个。 模拟器作业的执行时间限制为 3 小时,在物理 QPU 上运行的作业的执行时间限制为 8 小时。

以上示例提交一个简单作业,但您可以批量提交多个作业,也可以使用会话来提交多个迭代作业。 有关信息,请参阅 执行方式 文档。

(可选) 返回作业状态

通过运行 RuntimeJobV2 方法,跟进 Qiskit Runtime QiskitRuntimeService.run() 方法。 run() 方法返回 RuntimeJob 实例,该实例表示程序的异步执行实例。 RuntimeJobV2 类继承自 BasePrimitiveJob。 此类的 status() 方法返回一个字符串,而不是返回先前返回的 JobStatus 枚举。 请参阅 RuntimeJobV2 API 参考 以获取详细信息。

存在多个 RuntimeJob 方法,包括 job.status():

# check the job status
print(f"Job {job.job_id()} status: {job.status()}")

或者,手动或使用 Swagger 来运行 列出作业详细信息 API以检查作业的状态。

后续步骤