我的量子任务什么时候能运行? - Amazon Braket

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

我的量子任务什么时候能运行?

当您提交电路时,Amazon Braket 会将其发送到您指定的设备。量子处理单元 (QPU) 和按需仿真器量子任务按接收顺序排队和处理。提交量子任务后处理该任务所需的时间会有所不同,具体取决于其他 Amazon Braket 客户提交的任务的数量和复杂程度以及所选 QPU 的可用性。

QPU 可用性窗口和状态

QPU 可用性因设备而异。

在 Amazon Braket 控制台的 “设备” 页面中,您可以看到当前和即将推出的可用窗口以及设备状态。此外,每个设备页面都显示量子任务和混合任务的单独队列深度。

无论可用性窗口如何,如果客户无法使用该设备,则该设备将被视为离线。例如,它可能由于定期维护、升级或操作问题而处于离线状态。

队列可见性

在提交量子任务或混合任务之前,您可以通过检查设备队列深度来查看面前有多少量子任务或混合任务。

队列深度

Queue depth指排队等候特定设备的量子任务和混合作业的数量。可通过Braket Software Development Kit (SDK)或访问设备的量子任务和混合作业队列数Amazon Braket Management Console。

  1. 任务队列深度是指当前等待以正常优先级运行的量子任务总数。

  2. 优先任务队列深度是指等待运行的已提交量子任务的总数Amazon Braket Hybrid Jobs。这些任务在独立任务之前运行。

  3. 混合作业队列深度是指设备上当前排队的混合作业总数。 Quantum tasks作为混合作业的一部分提交具有优先级,并汇总在Priority Task Queue。

希望通过查看队列深度的客户Braket SDK可以修改以下代码片段以获取其量子任务或混合任务的队列位置:

device = AwsDevice("arn:aws:braket:us-east-1::device/qpu/ionq/Aria-1") # returns the number of quantum tasks queued on the device print(device.queue_depth().quantum_tasks) {<QueueType.NORMAL: 'Normal'>: '0', <QueueType.PRIORITY: 'Priority'>: '0'} # returns the number of hybrid jobs queued on the device print(device.queue_depth().jobs) '3'

向 QPU 提交量子任务或混合作业可能会导致您的工作负载处于QUEUED状态。Amazon Braket 让客户可以看到他们的量子任务和混合任务队列位置。

队列位置

Queue position指您的量子任务或混合任务在相应设备队列中的当前位置。它可以通过或获得,用于量子任务或混合作业Amazon Braket Management Console。Braket Software Development Kit (SDK)

希望通过查看队列位置的客户Braket SDK可以修改以下代码片段以获取其量子任务或混合任务的队列位置:

# choose the device to run your circuit device = AwsDevice("arn:aws:braket:eu-north-1::device/qpu/iqm/Garnet") #execute the circuit task = device.run(bell, s3_folder, shots=100) # retrieve the queue position information print(task.queue_position().queue_position) # Returns the number of Quantum Tasks queued ahead of you '2' from braket.aws import AwsQuantumJob job = AwsQuantumJob.create( "arn:aws:braket:eu-north-1::device/qpu/iqm/Garnet", source_module="algorithm_script.py", entry_point="algorithm_script:start_here", wait_until_complete=False ) # retrieve the queue position information print(job.queue_position().queue_position) '3' # returns the number of hybrid jobs queued ahead of you