檢查運算執行個體和叢集設定

本文說明在 AI Hypercomputer 中建立 Compute Engine 執行個體和叢集之前,應考慮的設定。查看可用設定有助於確保工作負載達到最佳效能,並盡量減少停機時間和效能問題。

建立運算執行個體和叢集時的設定因素

建立運算執行個體和叢集來執行工作負載之前,請考慮要使用哪種設定:

  1. 佈建模型

  2. 叢集部署工具

  3. 如果您使用取決於預留項目的佈建模式,則還必須考量下列因素:

佈建模型

根據您選擇的用量選項,建立運算執行個體或叢集時,可以使用下列其中一種佈建模型,取得建立執行個體所需的資源:

  • 預留型:您可以預留資源,並在未來指定日期和時間長度內以折扣價使用。在預留期間開始時,您可以使用預留資源建立執行個體或叢集。在預留期間,您擁有預留資源的獨占存取權。

  • 彈性啟動:您最多可要求七天的折扣資源。 Compute Engine 會盡力在您要求的資源可用時,立即安排資源的佈建作業。在您要求的期間內,您擁有取得資源的獨占存取權。

  • Spot:您可以根據可用性,立即取得大幅折扣的資源。不過,Compute Engine 可能會隨時停止或刪除執行個體,以取回容量。

取決於預留項目的佈建模式

預留項目綁定的佈建模式會將您建立的運算執行個體,連結至先前預留的容量。預留容量時,Compute Engine 會建立空白預留項目。接著,在預訂開始時間,系統會執行下列操作:

  • Compute Engine 會將您預留的執行個體數量新增至預留項目。在預留結束時間前,您擁有預留容量的獨占存取權。

  • Google Cloud 無論您是否使用預留容量,系統都會在預留期間結束前向您收取預留容量的費用。

接著,您就可以使用預留資源建立執行個體,不必支付額外費用。您只需要為預留項目未包含的資源付費,例如磁碟或 IP 位址。

如要在建立運算執行個體或 MIG 時指定與預訂項目綁定的佈建模式,請按照下列步驟操作:

  • 在 Google Cloud 控制台的「Provisioning model」(佈建模式) 清單中,選取「Reservation-bound」(與預訂項目綁定)

  • 在 Google Cloud CLI 中,請在指令中加入 --provisioning-model=RESERVATION_BOUND 旗標。

  • 在 Compute Engine API 中,將 "provisioningModel": "RESERVATION_BOUND" 欄位加入要求主體。

如要進一步瞭解在預留容量後建立執行個體或 MIG 時如何設定這些參數,請參閱「運算執行個體和叢集建立總覽」。如果您使用 Cluster Toolkit 部署叢集,叢集藍圖會為您設定佈建模型。

彈性啟動佈建模式

彈性啟動佈建模式可讓您在要求的容量可用時,建立獨立的彈性啟動 VM,或將彈性啟動 VM 新增至受管理執行個體群組 (MIG)。使用大小調整要求將彈性啟動 VM 新增至 MIG 時,MIG 會一次建立所有執行個體。這樣一來,您就不必等待 Compute Engine 提供啟動工作負載所需的完整容量,避免因部分容量而產生不必要的費用。彈性啟動佈建模式會從安全容量集區佈建資源,有助於提高取得 GPU 等高需求資源的機會。

如要在建立獨立執行個體或 MIG 的執行個體範本時指定「彈性啟動」佈建模式,請按照下列步驟操作:

  • 在 Google Cloud 控制台的「Provisioning model」(佈建模型) 清單中,選取「Flex-start」(彈性啟動)

  • 在 gcloud CLI 中,於指令中加入 --provisioning-model=FLEX_START 旗標。

  • 在 Compute Engine API 中,將 "provisioningModel": "FLEX_START" 欄位加入要求主體。

如要進一步瞭解如何建立使用彈性啟動佈建模式的執行個體或叢集,請參閱下列文件:

Spot 佈建模式

透過 Spot 佈建模式,您可以根據可用性建立大幅折扣的運算執行個體。不過,Compute Engine 可能會隨時停止或刪除建立的執行個體,以回收容量。這項程序稱為「搶占」

如要在建立執行個體或 MIG 時指定 Spot 佈建模式,請按照下列步驟操作:

  • 在 Google Cloud 控制台的「佈建模型」清單中,選取「Spot」

  • 在 gcloud CLI 中,請在指令中加入 --provisioning-model=SPOT 旗標。

  • 在 Compute Engine API 中,將 "provisioningModel": "SPOT" 欄位加入要求主體。

如要進一步瞭解如何在建立執行個體或 MIG 時設定這些參數,請參閱「運算執行個體和叢集建立總覽」。

叢集部署工具

Cluster Toolkit 是開放原始碼部署工具,建議用於建立 GPU 加速叢集。叢集工具包可部署 Google Kubernetes Engine (GKE) 或 Slurm 叢集。

或者,您也可以選擇使用下列其中一種方法佈建運算執行個體群組,然後視需要納入自己的工作負載排程器:

預留區塊部署類型

建立 A4X Max、A4X、A4、A3 Ultra、A3 Mega 和 A3 High (8 個 GPU) 的運算執行個體或叢集時,如果使用預訂綁定資源調度模型,系統會自動在密集分配的主機區塊中部署您收到的機器。這種部署方式有以下優點:

  • 使用 Google 的動態機器學習 (ML) 網路架構,提供非封鎖式網路,確保執行個體連線具備一致的高頻寬和低延遲。

  • 存取網路拓撲,以階層式檢視執行個體之間的相對鄰近程度。這項功能適用於進階工作排程用途。

  • 使用協調器時,可進行精細的拓撲感知存放位置。

  • 精細控管維護時間表,盡可能安排工作排程和延長正常運作時間,並縮短停機時間。

預留作業模式

如果您使用取決於預留項目佈建模式,則預留的機器類型會決定預留容量的預留項目運作模式。每種模式都會定義如何回應主機錯誤或主機報告錯誤,以及您對預訂基礎架構的可見度和控制程度。

每種預訂作業模式都會定義下列項目:

  • 誰管理復原程序:您或 Google Cloud。

  • 用於復原的容量:僅限預留容量,或預留容量內外皆可。

  • 放置位置控制層級:您是否能在特定預訂子區塊的預定時間前,查看並開始維護作業,以進行精細控制。

預留容量來建立運算執行個體或叢集時,您必須選擇下列其中一種預留作業模式:代管模式所有容量模式

受管理模式

在代管模式下, Google Cloud 系統會在主機發生錯誤或回報主機故障後,自動管理運算執行個體的維護和復原程序。如果工作負載需要高度穩定性,且您偏好自動化程序來盡量減少停機時間,則非常適合採用這種做法。

代管模式提供下列功能:

  • 僅將預留容量用於復原:Compute Engine 只會使用預留容量重新啟動執行個體。如果保留項目沒有可用容量,Compute Engine 只會在您取得更多容量後重新啟動執行個體。

  • 自動重新啟動執行個體: Google Cloud 處理執行個體的整個復原程序。需要進行主機維護時,Compute Engine 會自動將預訂中的執行個體遷移至其他可用機器,並重新啟動執行個體。

  • 封鎖管理和可見度:您可以查看個別預訂和預訂區塊的拓撲、健康狀態和維護狀態。您也可以接收這些資源的維護通知,並選擇在預定維護時間前開始維護作業。

  • 可能的 API 頻率限制:每個預訂呼叫 report faulty host API 的頻率可能受到限制。

所有容量模式

無論採用哪種容量模式,您都必須負責管理運算執行個體復原程序。主機發生錯誤或回報主機故障時,您必須手動啟動維護作業。與管理模式不同,您也可以查看並啟動預留子區塊的維護作業。透過這些功能,您可以全面精細地控管執行個體的維護和復原程序。

全容量模式具有下列功能:

  • 使用預留和未預留的容量進行復原:您可以使用預留資源,以及預留項目以外的任何可用資源,在主機故障時遷移及重新啟動執行個體。

  • 手動重新啟動執行個體:您必須負責執行個體的復原程序。如果主機發生錯誤或回報主機故障,Compute Engine 就會停止執行個體,以便進行主機維護。維護作業完成後,您才能重新啟動執行個體。

  • 區塊和子區塊管理與可見度:您可以查看個別預訂、預訂區塊和預訂子區塊的拓撲、健康狀態和維護狀態。您也可以接收這些資源的維護通知,並選擇在預定維護時間前開始維護作業。

  • 沒有 API 頻率限制:呼叫回報錯誤主機 API 時,沒有頻率限制。

維護作業排程類型

如果您使用預訂項目綁定佈建模式,叢集導向器會提供選項,排定叢集中執行中運算執行個體的主機維護作業。預留容量時,您可以指定是否要將執行個體分組,並同步排定維護作業 (grouped),或是讓執行個體鬆散耦合,並獨立排定維護作業 (independent)。

分組維護排程

無論 Compute Engine 何時佈建運算執行個體,分組維護排程類型都能確保執行相同工作負載的所有執行個體,都具有相同的計畫維護頻率。這項緊密結合的維護作業可讓您完全掌控已用和未用的容量,進而最佳化工作效能。

在下列情況中,群組維護作業排程類型非常實用:

  • 您的環境使用作業排程器,例如 Slurm 或 GKE。

  • 您想執行訓練或其他高度平行化的運算工作負載。

獨立排定維護時間

這種獨立維護排程類型會為執行個體提供不同的維護排程。如果您想執行推論或小規模訓練,且工作負載在有各自的維護時間表時,執行效率會更高,那麼這個設定就是理想選擇。

後續步驟