量子運算與傳統應用程式整合

Azure Quantum

有些計算問題在經典電腦上,即使是大型超級電腦,也不實用或難以解決。 對於其中一些問題,量子演算法能以遠少於已知經典方法的資源達成解。 量子電腦利用量子力學效應,如疊加與糾纏,以經典電腦無法的方式表示和處理資訊。

量子程式在 量子提供者 上執行,而您可透過提交作業來存取這些提供者。 量子目標會暴露不同的 目標特徵。 有些配置檔只允許量子運算,而你能在它們上執行的經典邏輯有限。 其他配置檔允許量子操作與經典操作同時在提供者上執行。

無論目標配置為何,傳統計算元件都會處理周邊的應用程式整合。 即使量子目標接受經典運算,你還是要提交工作並等待結果才能達到目標。 本文描述並比較兩種將量子工作與經典應用整合的編排模型。

實務上,執行量子程式是一種服務呼叫。 你的傳統應用程式或客戶端程式碼會向目標提交工作,等待它執行,然後取得結果。 一個或多個經典計算元件透過執行以下活動來協調每個量子工作:

  • 準備輸入資料
  • 將量子運算 工作 提交至目標量子環境
  • 監控工作執行
  • 後製工作結果

量子整合模型

你可以透過兩種編排模式之一,將量子工作與經典應用整合:

  • 直接量子積分。 用戶端應用程式或輕量級傳統控制程式會直接與 Azure Quantum 工作區互動。 客戶端擁有輸入準備、工作提交、監控、結果處理,以及圍繞量子執行的經典邏輯。

  • 由工作流程協調的量子整合。 工作流程協調器掌控整體狀態及其轉移。 量子執行發生在與高效能運算(HPC)或圖形處理器(GPU)運算階段同時執行的工作流程步驟中。

對於特定的應用程式整合邊界,這些模式是替代方案。 要麼客戶端直接與工作區整合,要麼由更廣泛的工作流程負責量子步驟。 本文將介紹每種模式的實作方式。

Note

本文中的架構會在量子目標上執行部分運算工作。 對於某些運算挑戰,現有用於執行 高效能運算 或提供 AI 功能的 服務可能是替代方案。

積分選擇與經典計算的運行位置無關。 根據目標配置與工作負載,經典邏輯可在量子程式中執行、量子執行間的用戶端架構中執行、工作流程協調器,或在 HPC 或 GPU 運算的經典工作流程步驟中執行。

決策矩陣

請使用以下決策矩陣來指導你選擇整合模式:

如果你的工作量有這些特徵 請採用此方法
一個應用程式或輕量級線束擁有完整的量子工作生命週期,輸入準備與結果處理則整合於該用戶端中。 直接量子積分
你用手寫量子程式碼探索量子硬體的特性,而其中一個應用程式或少數相關應用會消耗結果。 直接量子積分
經典層面較為重,將量子運算視為多階段流程中的一個步驟,流程中每個階段分別運行於適合它們的後端,例如 HPC、GPU 或量子目標。 工作流程編排的量子整合
量子執行會重複,一次執行的結果會產生下一個量子程式或決定其參數。 工作流程編排的量子整合

案例詳細資料

這兩種工作流程都實作了非同步 Request-Reply 模式及為Azure Quantum工作生命週期所定義的步驟。

量子目標,尤其是量子硬體,是有限的資源。 Azure Quantum 透過工作佇列分配這些資源。 當你提交作業時,該作業會進入你所選目標的佇列,並在該目標完成先前的佇列項目後執行。 要查看預期等待時間,請 列出可用目標。 將總回應時間計算為佇列等待時間加上工作執行時間。

量子目標的能力也各異。 有些目標只接受量子運算,而有些則在單一工作中執行帶有量子運算的經典邏輯。 此模型支援執行時自動調整的演算法。 在你決定目標之前,先確認它是否支援你的演算法所需的運算。 欲了解更多經典與量子指令如何協同運作,請參閱 《混合量子運算導論》。

Note

這些模式描述了你如何將量子運算整合進你的應用架構中。 它們與 Azure Quantum 混合運算模型不同,後者描述了經典與量子運算在量子工作中的互動方式。 目標設定限制了這些工作中能執行的內容。 欲了解更多資訊,請參閱 《混合量子運算導論》。 應用程式整合模式獨立於工作內行為,並控制是客戶端還是工作流程執行量子工作。

直接量子整合

以下章節將介紹將量子功與經典應用整合的直接積分模型。

建築

架構圖顯示直接量子整合,經典客戶端向 Azure Quantum 工作空間提交工作。

下載此架構的PowerPoint檔案。

數據流

以下資料流程對應前述圖表:

  1. 登入的用戶會透過傳統用戶端應用程式觸發量子作業執行。

  2. 用戶端應用程式會將資料輸入到 Azure 儲存體。

  3. 客戶端應用程式會將工作提交到 Azure Quantum 工作空間,並指定執行目標或目標。

    用戶端透過設定識別工作空間,並透過 Microsoft Entra 身份驗證工作空間。 運行在 Azure 託管資源上的客戶端可以使用受管理身份。 本地用戶端應用程式會以另一個 Microsoft Entra 身份驗證,例如服務主體或互動式使用者登入。

  4. 量子提供者會在目標環境上執行作業。

  5. 用戶端應用程式會輪詢作業狀態來監視作業執行。

  6. 一旦量子作業完成,用戶端應用程式就會從記憶體取得計算結果。

元件

  • Azure Quantum 提供一個工作區,您可以從 Azure 入口網站存取,用於管理在各種目標上執行量子工作所需的資產。 工作會在量子模擬器或量子硬體上執行,視你選擇的供應商而定。
  • Microsoft Entra ID 協調使用者認證,並協助保護對 Azure Quantum 工作空間的存取。
  • 儲存 提供來自量子提供者的輸入資料與結果的儲存。

直接整合的潛在應用案例

直接量子積分模式適用於以下應用情境:

  • 一個客戶端應用程式或輕量級經典線束擁有完整的量子工作生命週期,無需更廣泛的工作流程。
  • 用戶端可執行相關經典工作,如輸入準備與結果處理。
  • 你探索的是量子硬體的特性,所以通常是手寫量子程式碼,而不是動態產生。
  • 量子元件的使用僅限於單一應用或少數相關應用。
  • 量子工作代表一種專門解決方案,例如分子模擬,只有一個專門的經典應用會使用。

工作流程協調的量子整合

以下章節將介紹將量子工作整合於經典應用的工作流程編排模型。

建築

工作流程邏輯不依賴於任何特定的主機或供應商。 以下流程圖顯示狀態機:單一輸入、對各步驟的迴圈,以及每個步驟的各個階段。 量子分支可以包含一個經典步驟不會使用的可選程式生成與優化階段。

工作流程編排的量子積分狀態機流程圖,顯示步驟迴圈、輸入準備、後端選擇器、執行與輸出處理。

前述流程圖中的後端選擇器是邏輯階段,而非必需元件,且可作為配置查詢,將每個步驟導向固定後端類型。

你可以在 Azure 上架設這個工作流程,並搭配一組傳統服務來提交並監控量子運算。 下圖展示了一個拓撲範例:

架構圖展示了 Azure 上工作流程編排的量子整合拓撲。

在左上角,一個客戶端應用程式框連接到一個帶有虛線標示「登入」的 Microsoft Entra ID 圖示。 有一個標示為「Authenticated request」和「1」的箭頭,從「Client app」方塊指向標示為「API 管理」的方塊。 API 管理框以虛線連接 Microsoft Entra ID 圖示。 標示為 2 的箭頭會從 API 管理框延伸到一個標示為 Input API 的圖示,該圖示位於標示為 Function 應用程式的框內。 標示為 3 的箭頭,從函式應用程式方塊內標示為 Workflow orchestrator(Durable Functions)的圖示,指向標示為傳統運算後端的方塊;該方塊包含標示為本機運算、HPC 叢集(Azure Batch)及 GPU 運算的方塊。 標示為 4 的箭頭會從經典計算後端框延伸到一個標示為 Results and state 的框,該框包含一個 Azure 儲存體 圖示。 一個標示為 5 的箭頭會從 Function 應用程式框中的 Workflow orchestrator 圖示延伸到一個標示為 Azure Quantum workspace 的框,裡面有一個 Azure Quantum 圖示。 標示為 6 的箭頭從標示為 Azure Quantum workspace 的方框指向一個標示為 Quantum target 的方框,該方框內有兩個標示為 Targets 的圖示。 標有 7 的箭頭從量子目標框延伸到結果與狀態框。 標示為 8 的箭頭會從結果和狀態框回到功能應用程式欄位。 標示為 9 的箭頭會從左側的 API 管理框延伸到功能應用程式框中標示為狀態 API(Status API)的圖示。

下載此架構的PowerPoint檔案。

數據流

以下資料流對應部署拓撲:

  1. 用戶端應用程式透過 API Management 提交請求,API 以 Microsoft Entra ID 驗證呼叫者,並在請求到達計算層前進行限速。
  2. API 管理會將請求轉發給輸入 API,一個 HTTP 觸發函式,負責驗證請求並啟動工作流程編排器。
  3. 對於以經典方式執行的步驟,編排器會將執行路由到傳統後端,例如 HPC 叢集或 GPU 運算。
  4. 傳統後端會將其結果和更新的管線狀態寫入儲存裝置。
  5. 對於在量子上執行的步驟,編排器會將執行路由到量子路徑。 量子路徑會準備該步驟的程式,從步驟的輸入或使用固定實作產生並優化該程式,並將工作提交至 Azure Quantum 工作空間。 提交透過 管理身份進行驗證。
  6. 工作空間會對所選量子目標執行工作。
  7. 量子目標會將其結果寫入儲存。
  8. 編排器會讀取更新後的狀態儲存並評估管線的轉換邏輯。 如果收斂或迭代條件需要另一個量子執行,編排器會利用結果決定下一個量子程式的參數,或提供產生下一個程式的輸入。 管線接著會迴回到相應的步驟。
  9. 用戶端透過 API Management 輪詢狀態 API,以追蹤進度並在管線達到終端狀態時取得最終結果。

元件

  • Durable Functions 作為工作流程協調器,以狀態機形式執行管線、協調各個步驟,並為各步驟的執行選擇量子或其他運算類型的後端。 你可以使用 Durable Functions 或其他工作流程引擎來實作協調器。
  • Azure HPC 和 GPU 傳統計算後端會執行非量子步驟。
  • Azure Functions 負責託管啟動和監控工作流程的 HTTP API,以及執行工作流程的編排器。
  • API 管理 是客戶端請求的入口。 它會驗證呼叫端並實施節流。 為了防止函式應用程式被直接呼叫,請使用 Azure Functions 的網路選項,例如入站存取限制或私有端點,讓它只接受來自 API 管理的流量。
  • Azure Quantum 提供一個工作區,用於管理與執行量子作業相關的資產。 工作會在量子模擬器或量子硬體上執行,視你選擇的目標而定。
  • Microsoft Entra ID 協調認證並協助保護對 Azure Quantum 工作空間的存取。
  • Storage 會儲存輸入資料、管線的中間狀態及結果。

替代方案

本文中的架構會在量子目標上執行部分運算工作。 對於某些運算挑戰,現有用於執行 高效能運算 或提供 AI 功能的 服務可能是替代方案。

對於科學研發工作負載,Microsoft Discovery使用 AI 在模型、工具和運算資源之間協調安排複雜任務。 Microsoft Discovery 能在多步驟流程中協調各種工具,且具備擴充性,因此你可以連接自己的工具和代理,而不必自己建置和操作編排。 整合量子功能(包括執行量子步驟)後,便可利用 AI 承擔原本需由這種模式手動建構的協調工作。

工作流程編排情境細節

在此模式中,工作流程協調器會將工作負載作為由多個步驟組成的管線來執行。 編排器就像一個狀態機,步驟會重複並循環,直到達到終止或收斂條件。 每個步驟遵循相同的形狀:準備輸入、執行並處理輸出。

編排器會選擇執行每個步驟的後端。 此選擇屬於協調邏輯,而非獨立服務,且只需從配置中讀取每個步驟的目標後端即可。 步驟會執行在量子後端或經典計算上,例如HPC叢集或GPU運算。 輕量級的傳統步驟可以在協調器本身中執行。 當量子步驟重複時,工作流程會處理一次量子執行的結果,以決定下一個量子程式的參數,或提供產生下一個程式的輸入。

一個在量子後端執行的步驟,可以加入一個經典步驟沒有的相位。 該階段在執行前產生並優化量子程式。 這是選用的階段。 程式可根據該步驟的輸入動態產生,也可以來自會跳過此階段的固定實作。 某個可使用量子運算的步驟,在更符合輸入需求的情況下,仍可能在經典後端上執行。

量子化學就是一個代表性例子。 典型的管線會使用經典步驟來準備分子系統:幾何最佳化、自洽場計算,以及主動空間選擇。 管線接著計算目標性質,例如分子的基態能量。 能量計算步驟無論採用經典近似還是量子演算法,都保持相同的意圖。 你可以根據需要的精度和問題的規模來選擇後端。

QDK/Chemistry 函式庫支援這類管線。 函式庫提供模組化元件,用於經典製備步驟及從經典計算波函數產生狀態準備電路,量子後端利用如量子相位估計等演算法估算能量。 這種電路生成能力是從步驟輸入動態產生量子程式的具體範例。

潛在的使用案例

工作流程編排的量子整合模式符合以下應用情境:

  • 經典端則屬於重量級,並以問題狀態邏輯為核心,而量子能力僅作為眾多步驟中的一個或數個步驟來運用。
  • 工作負載是一個多階段管線,而且通常是反覆迭代的,就像狀態機一樣。 每個階段運行在最適合它的計算後端:HPC、GPU 或量子目標。 量子運算是針對一個或多個階段的一種選擇。
  • 量子步代表一個明確定義的建構單元,例如計算分子性質的科學計算。 精確的量子程式碼甚至可能被動態產生並優化,以符合實際輸入。
  • 工作流程協調器負責統籌多個自成一體的量子執行作業,以及它們之間的經典運算處理。 一次執行的結果決定下一個量子程式的參數,或提供產生下一個程式的輸入。 迭代相位估計 符合此結構,變分演算法如變分量子特徵求解器(VQE)與量子近似優化演算法(QAOA)亦然。

考量事項

這些考量實現了 Azure Well-Architected 框架的支柱,這是一套指導原則,用以提升工作負載的品質。 如需詳細資訊,請參閱 Well-Architected Framework。

可靠性

可靠性有助於確保您的應用程式可以符合您對客戶的承諾。 欲了解更多資訊,請參閱 可靠性設計審查清單。

量子工作會在遠端共享目標上執行,因此工作執行可能因暫時錯誤(如目標逾時)而失敗。 無論你選擇哪種整合模式,都要監控工作執行,這樣才能向使用者顯示工作狀態。 當工作因暫態錯誤失敗時,套用 重試模式。 透過非同步呼叫提交工作,並輪詢以取得結果,避免阻塞發出呼叫的用戶端。

量子運算功能的可用性高度依賴於 量子運算提供者的可用性與容量特性。 根據計算目標,傳統用戶端應用程式可能會遇到長時間延遲或無法使用目標。

對於周邊的 Azure 服務,則適用一般的可用性考量。 如果需要,可以考慮使用 Azure 儲存體 冗餘中的複製選項。

工作流程協調整合的可靠性

  • 為了在工作流程編排整合中實現高可用性,建議在 可用性區域 或 多個區域部署 API 管理。 區域冗餘需要 Premium 或 Premium v2 等級,而多區域部署則需要 Premium 等級。

  • 如果你使用 Durable Functions 實作協調器,應將其災害復原視為一個整體進行規劃,而非將函式應用程式及其狀態視為彼此獨立的服務。 Durable 函式會將所有協調狀態持續存在於儲存後端的任務中心,也就是預設的 Azure 儲存體。 由於執行階段狀態與計算資源是透過該任務中樞耦合在一起,因此在第二個區域中佈建函式應用程式,並另行複寫 Storage,並不能構成安全的容錯移轉方案。 編排可能會暫停、遺失最近的交易,或讀取跨區域工作中樞,具體情況取決於拓撲。

    為了安全地進行容錯移轉,請使用主動-被動組態,並在容錯移轉時切換至次要區域,前端則使用全域負載平衡服務,例如 Azure Front Door 或 Azure 流量管理員。 確認服務健康探測器能在你的網路限制下存取功能應用程式,因為限制應用程式只能使用 API 管理流量的控制也可能阻擋這些探針。 選擇符合你對資料遺失和跨區域延遲容忍度的拓撲結構。 關於協調選項及其權衡,請參見 Durable Functions 中的災難復原與地理分布。

安全性

安全性可提供針對蓄意攻擊和濫用寶貴數據和系統的保證。 請參閱 安全性設計審查清單 以獲取更多資訊。

無論你選擇哪種整合模式,都應對圍繞量子作業的傳統服務採用以下強化做法:

  • 使用 Microsoft Entra 身份驗證 Azure Quantum 及周邊服務,並在服務支援的地方關閉本地認證。 在主機環境支援的地方使用 受管理身份 。 對於無法使用受管理身份的客戶端,請使用其他 Microsoft Entra 身份驗證,例如服務主體或互動式使用者登入。

  • 透過 搭配 Microsoft Entra ID 的 Azure 角色型存取控制(Azure RBAC),為每個存取 Storage 的元件授與其所需的資料平面存取權限,且將權限範圍限定於該元件。 不要把儲存帳號金鑰嵌入應用程式碼裡。

一般而言,適當時應適用 Well-Architected 框架的安全建議 。

直接量子整合的安全性

與工作流程編排的量子整合不同,此模式假設只有單一用戶端存取 Azure Quantum 工作空間。 客戶端通常是輕量級的經典架構,專注於工作提交與操作,而非更廣泛的工作流程狀態。 此案例會導致下列設定:

  • 因為客戶端是已知的,你可以給它固定身份。 當客戶端在 Azure 託管資源上運行時,請與其關聯一個受管理身份。 當用戶端在 Azure 外執行時,請使用服務主體或互動式使用者登入。

  • 你可以在客戶端本身實作請求限速和結果快取。

工作流程協調整合的安全性

與直接量子積分不同,這種模式將經典服務層級置於量子工作之前。 API 管理是該層級的前門,因此安全配置強調保護入口點與通往量子工作區的路徑。

成本優化

成本優化著重於減少不必要的費用,並提升營運效率的方式。 欲了解更多資訊,請參閱成本優化設計審查清單。

此解決方案的整體成本取決於您選擇執行量子作業的量子運算目標。 傳統組成部分很容易估計。 若要參考一個代表性部署的工作流程編排模式,請參考此範例成本估算,涵蓋經典元件,包括 API 管理、Azure Functions 與儲存。 直接整合模式較輕,但其傳統成本仍包含儲存裝置以及客戶端應用程式所使用的主機、網路與監控。

你可以透過 Microsoft Marketplace 供應項目來使用適用於 Azure Quantum 的量子運算供應商。 定價取決於資源類型(模擬器或硬體)、SKU 和使用量。 欲了解更多資訊,請參考 Azure Quantum 上的 Quantum computing providers 所屬情境供應商的參考頁面。

貢獻者

本文由 Microsoft 維護。 以下作者撰寫了本文。

主要作者

若要查看非公開的 LinkedIn 個人檔案,請登入 LinkedIn。

後續步驟