我的量子任務何時會執行? - Amazon Braket

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

我的量子任務何時會執行?

當您提交電路時,Amazon Braket 會將其傳送至您指定的裝置。Quantum Processing Unit (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 是指您的量子任務或個別裝置佇列中混合任務的目前位置。可以透過 取得量子任務或混合式任務 Braket Software Development Kit (SDK) 或 Amazon Braket Management Console.

想要透過 檢視佇列位置的客戶 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