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

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

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

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

  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 控制台的「Provisioning model」(佈建模式) 清單中,選取「Spot」。

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

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

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

叢集部署工具

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

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

預留項目區塊部署類型

建立叢集式 GPU 運算執行個體或叢集時,如果使用預留繫結佈建模式,系統會自動在密集分配的主機區塊中部署機器。這項部署作業有以下優點:

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

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

  • 使用自動調度管理工具時,可精細調整拓撲感知存放位置。

  • 使用者可精細控管維護排程,盡可能提高工作排程和運作時間,並盡可能減少停機時間。

預留項目運作模式

如果使用取決於預留項目的佈建模式,預留的機型會決定預留容量的預留項目作業模式。每種模式都會定義如何回應主機錯誤或故障主機報告,以及您對預留項目基礎架構的瀏覽權限和控制權限。

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

  • 誰負責管理復原作業:您或 Google Cloud。

  • 用於復原作業的運算資源:僅限預留運算資源,或預留項目內外的運算資源。

  • 刊登位置控制層級:是否可以查看特定預留子區塊,並在預定時間前開始維護,以便精細控管。

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

受管理模式

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

代管模式具有下列特性:

  • 「Only use reserved capacity for recovery」(僅使用預留容量進行復原):Compute Engine 只會使用預留容量重新啟動執行個體。如果預留項目中沒有可用容量,Compute Engine 只會在您取得更多容量後重新啟動執行個體。

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

  • 預留項目區塊管理和瀏覽權限:您可以查看個別預留項目和預留項目區塊的拓撲、健康狀態和維護狀態。您也可以接收這些資源的維護通知,並視需要提前開始維護作業。

  • 潛在 API 頻率限制:呼叫回報故障主機 API 時,可能會受到每個預留項目的頻率限制。

所有容量模式

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

「所有容量」模式具有下列特性:

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

  • 手動重新啟動執行個體:您必須負責執行個體的復原程序。如果因主機錯誤或主機故障報告而需要維護主機,Compute Engine 會停止執行個體。維護作業完成後,才能重新啟動執行個體。

  • 區塊和子區塊管理與瀏覽權限:您可以查看個別預留項目、預留區塊和預留子區塊的拓撲、健康狀態和維護狀態。您也可以接收維護通知,並視需要提前開始維護這些資源。

  • 無 API 頻率限制:呼叫回報故障主機 API 時,沒有頻率限制。

維護作業排程類型

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

分組維護作業排程

無論 Compute Engine 何時佈建運算執行個體,分組維護排程類型都能協助將執行相同工作負載的所有執行個體,調整為相同的計畫維護頻率。這種緊密結合的維護方式可讓您完全控管已使用和未使用的容量,進而最佳化工作效能。

群組維護排程類型適用於下列情況:

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

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

獨立維護作業排程

這種獨立維護排程類型會為執行個體提供不同的維護排程。如果想執行推論或有限規模的訓練,且工作負載在維護排程分開時執行效率較高,則適合採用這項設定。

後續步驟