共用方式為


使用 Azure Quantum 作業

當您在 Azure Quantum 中執行量子程式時,您會建立並執行 作業。 建立和執行作業的步驟取決於作業類型和提供者,以及 target 您為工作區設定的步驟。

作業屬性

所有作業都有下列共通的屬性:

屬性 說明
識別碼 作業的唯一識別碼。 在工作區中不得重複。
提供者 要執行作業的「人員」
Target 要執行作業的「項目」。 例如,提供者所提供的確切量子硬體或量子模擬器。
名稱 使用者定義的名稱,可協助組織您的作業。
參數 的 targets選擇性輸入參數。 如需可用參數的定義,請參閱選取 target 的檔。

建立作業之後,即可取得其狀態和執行歷程記錄的各種元數據。

作業生命週期

撰寫量子程序之後,您可以選取 target 並提交您的作業。

下圖顯示了您提交作業後的基本工作流程:

azure quantum 作業流程

首先,Azure Quantum 會將作業上傳至您在工作區中設定的 Azure 儲存體帳戶。 然後,該作業會新增至您在作業中指定的供應商的作業佇列中。 Azure Quantum 接著會下載您的程式並為供應商進行轉譯。 供應商會處理該作業並將輸出傳回至 Azure 儲存體 (您可在那裡進行下載)。

監視作業

提交作業之後,您可以監視作業的狀態。 作業具有下列可能的狀態:

狀態 描述
該作業正在等待執行。 某些作業會以等候狀態執行前置處理工作。 waiting 一律是第一個狀態,不過,作業可能會移至 executing 狀態,然後才能在 中 waiting觀察它。
執行 target目前正在執行作業。
succeeded 作業成功,而且輸出可供使用。 這是 最終 狀態。
failed 作業失敗,而且有錯誤資訊可供使用。 這是 最終 狀態。
取消 使用者要求取消作業執行。 這是 最終 狀態。 如需詳細資訊,請參閱 本文中的作業取消

succeededfailedcancelled 狀態會被視為最終狀態。 一旦作業處於其中一個狀態,就不會再發生任何更新,且對應的作業輸出數據不會變更。

下圖顯示可能的作業狀態轉換:

此圖顯示作業提交至 Azure Qauntum 的工作流程。

作業成功完成之後,它會顯示 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)

作業取消

當作業尚未處於最終狀態時(例如、 succeededfailedcancelled),您可以要求取消作業。 如果作業處於狀態, waiting 所有提供者都會取消您的作業。 不過,如果您的作業處於 executing 狀態,並非所有提供者都支援取消。

注意

如果您在作業開始執行之後取消作業,您的帳戶可能仍會收取該作業的部分或完整金額。 請參閱所選提供者的計費檔