使用 Azure Quantum 作業
當您在 Azure Quantum 中執行量子程式時,您會建立並執行 作業。 建立和執行作業的步驟取決於作業類型和提供者,以及 target 您為工作區設定的步驟。
作業屬性
所有作業都有下列共通的屬性:
屬性 | 說明 |
---|---|
識別碼 | 作業的唯一識別碼。 在工作區中不得重複。 |
提供者 | 要執行作業的「人員」。 |
Target | 要執行作業的「項目」。 例如,提供者所提供的確切量子硬體或量子模擬器。 |
名稱 | 使用者定義的名稱,可協助組織您的作業。 |
參數 | 的 targets選擇性輸入參數。 如需可用參數的定義,請參閱選取 target 的檔。 |
建立作業之後,即可取得其狀態和執行歷程記錄的各種元數據。
作業生命週期
撰寫量子程序之後,您可以選取 target 並提交您的作業。
下圖顯示了您提交作業後的基本工作流程:
首先,Azure Quantum 會將作業上傳至您在工作區中設定的 Azure 儲存體帳戶。 然後,該作業會新增至您在作業中指定的供應商的作業佇列中。 Azure Quantum 接著會下載您的程式並為供應商進行轉譯。 供應商會處理該作業並將輸出傳回至 Azure 儲存體 (您可在那裡進行下載)。
監視作業
提交作業之後,您可以監視作業的狀態。 作業具有下列可能的狀態:
狀態 | 描述 |
---|---|
等待 | 該作業正在等待執行。 某些作業會以等候狀態執行前置處理工作。 waiting 一律是第一個狀態,不過,作業可能會移至 executing 狀態,然後才能在 中 waiting 觀察它。 |
執行 | target目前正在執行作業。 |
succeeded | 作業成功,而且輸出可供使用。 這是 最終 狀態。 |
failed | 作業失敗,而且有錯誤資訊可供使用。 這是 最終 狀態。 |
取消 | 使用者要求取消作業執行。 這是 最終 狀態。 如需詳細資訊,請參閱 本文中的作業取消 。 |
succeeded
、 failed
和 cancelled
狀態會被視為最終狀態。 一旦作業處於其中一個狀態,就不會再發生任何更新,且對應的作業輸出數據不會變更。
下圖顯示可能的作業狀態轉換:
作業成功完成之後,它會顯示 Azure 儲存體 帳戶中輸出數據的連結。 存取此資料的方式取決於您用來 提交作業的 SDK 或工具。
如何監視作業
您可以透過 Python、Azure 入口網站 和 Azure CLI 監視作業。
作業的所有屬性都可以在中 job.details
存取。 例如,您可以存取作業名稱、狀態和識別碼,如下所示:
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本機安裝。 透過本機安裝,您可以將作業標識符儲存在本機。
您可以複製下列程式代碼以取得作業清單及其結果:
for job in workspace.list_jobs():
print(job.id, job.details.name, job.details.output_data_uri)
作業取消
當作業尚未處於最終狀態時(例如、 succeeded
failed
或 cancelled
),您可以要求取消作業。 如果作業處於狀態, waiting
所有提供者都會取消您的作業。 不過,如果您的作業處於 executing
狀態,並非所有提供者都支援取消。
注意
如果您在作業開始執行之後取消作業,您的帳戶可能仍會收取該作業的部分或完整金額。 請參閱所選提供者的計費檔