本文說明如何設定及部署自行管理的 Slurm 叢集,並使用 A4X Max、A4X、A4、A3 Ultra、A3 Mega 或 A3 High 機型。如要進一步瞭解這些加速器最佳化機型,請參閱「關於 GPU 加速器」。
本文中的步驟說明如何使用 Cluster Toolkit 建立 Slurm 叢集。Cluster Toolkit 是 Google 提供的開放原始碼工具,可使用藍圖簡化叢集的設定和部署作業。您對叢集擁有完整控制權,但也必須負責管理叢集。如要避免管理叢集的負擔,並專注於執行工作負載,請使用 Cluster Director 建立全代管叢集。
限制
視叢集中 Compute Engine 執行個體使用的機器類型而定,適用下列限制:
A4X Max
- 使用這類機型的執行個體無法享有續用折扣或彈性承諾使用折扣。
- 您只能在特定區域和可用區建立執行個體。
- 您無法使用 Persistent Disk (區域性或可用區)。您只能使用 Google Cloud Hyperdisk。
- 這類機器類型僅適用於 NVIDIA Grace 平台。
- A4X Max 不支援變更機型。如要切換至這個機型或從這個機型切換,您必須建立新的執行個體。
- 您無法在這個機器類型上執行 Windows 作業系統。如需支援的 Linux 作業系統清單,請參閱「GPU 執行個體支援的作業系統」。
- A4X Max 執行個體不支援下列項目:
- 2026 年 2 月 4 日前建立的 Hyperdisk ML 磁碟,無法連接至 A4X Max 機型。
A4X
- 使用這類機型的執行個體無法享有續用折扣或彈性承諾使用折扣。
- 您只能在特定區域和可用區建立執行個體。
- 您無法使用 Persistent Disk (區域性或可用區)。您只能使用 Google Cloud Hyperdisk。
- 這類機器類型僅適用於 NVIDIA Grace 平台。
- A4X 不支援變更機型。如要切換至或切換出這個機器類型,您必須建立新的執行個體。
- 您無法在這個機器類型上執行 Windows 作業系統。如需支援的 Linux 作業系統清單,請參閱「GPU 執行個體支援的作業系統」。
- 如果是 A4X 執行個體,當您使用
ethtool -S監控 GPU 網路時,以_phy結尾的實體通訊埠計數器不會更新。對於使用 MRDMA 虛擬函式 (VF) 架構的執行個體,這是預期行為。詳情請參閱「MRDMA 函式和網路監控工具」。 - A4X 執行個體不支援下列項目:
- 2026 年 2 月 4 日前建立的 Hyperdisk ML 磁碟,無法連接至 A4X 機型。
A4
- 使用 A4 機型的執行個體不適用續用折扣和彈性承諾使用折扣。
- A4 機型僅適用於特定區域和可用區。
- 您無法使用 Persistent Disk (區域性或可用區)。您只能使用 Google Cloud Hyperdisk。
- A4 機型僅適用於 Emerald Rapids CPU 平台。
- 您無法將執行個體的機型變更為 A4 機型,也無法將 A4 機型變更為其他機型。您必須使用這個機型建立新的執行個體。
- A4 機型不支援單一租戶。
- 您無法在 A4 機器類型上執行 Windows 作業系統。
- 如果是 A4 執行個體,當您使用
ethtool -S監控 GPU 網路時,以_phy結尾的實體通訊埠計數器不會更新。對於使用 MRDMA 虛擬函式 (VF) 架構的執行個體,這是預期行為。詳情請參閱「MRDMA 函式和網路監控工具」。 - 2026 年 2 月 4 日前建立的 Hyperdisk ML 磁碟,無法連接至 A4 機型。
A3 Ultra
- 使用 A3 Ultra 機型的執行個體不適用續用折扣和彈性承諾使用折扣。
- A3 Ultra 機型僅適用於特定區域和可用區。
- 您無法使用 Persistent Disk (區域性或可用區)。您只能使用 Google Cloud Hyperdisk。
- A3 Ultra 機型僅適用於 Emerald Rapids CPU 平台。
- 無法變更 A3 Ultra 機型。如要切換至或切換出這個機器類型,您必須建立新的執行個體。
- 您無法在 A3 Ultra 機型上執行 Windows 作業系統。
- A3 Ultra 機型不支援單一租戶。
- 如果是 A3 Ultra 執行個體,當您使用
ethtool -S監控 GPU 網路時,以_phy結尾的實體通訊埠計數器不會更新。對於使用 MRDMA 虛擬函式 (VF) 架構的執行個體,這是預期行為。詳情請參閱「MRDMA 函式和網路監控工具」。
A3 Mega
- 使用 A3 Mega 機型的執行個體不適用續用折扣和彈性承諾使用折扣。
- A3 Mega 機型僅適用於特定區域和可用區。
- 您無法在採用 A3 Mega 機型的執行個體上使用區域永久磁碟。
- A3 Mega 機型僅適用於 Sapphire Rapids CPU 平台。
- A3 Mega 機型不支援變更機型。如要切換至或切換出這個機器類型,您必須建立新的執行個體。
- 您無法在 A3 Mega 機型上執行 Windows 作業系統。
A3 High
- 使用 A3 High 機型的執行個體不適用續用折扣和彈性承諾使用折扣。
- A3 High 機型僅適用於特定區域和可用區。
- 您無法在採用 A3 High 機型的執行個體上使用區域永久磁碟。
- A3 High 機型僅適用於 Sapphire Rapids CPU 平台。
- 不支援變更 A3 High 機型。如要切換至或切換出這個機器類型,您必須建立新的執行個體。
- 您無法在 A3 High 機型上執行 Windows 作業系統。
- 如果是
a3-highgpu-1g、a3-highgpu-2g和a3-highgpu-4g機型,您必須使用 Spot VM 或彈性啟動型 VM 建立執行個體。如要瞭解上述做法的詳細操作說明,請參閱下列文章:- 如要建立 Spot VM,請在建立加速器最佳化 VM 時,將佈建模式設為
SPOT。 - 如要建立彈性啟動型 VM,請使用下列任一方法:
- 建立加速器最佳化 VM 時,建立獨立 VM 並將佈建模式設為
FLEX_START。 - 在代管執行個體群組 (MIG) 建立大小調整要求。如需操作說明,請參閱「建立含有 GPU VM 的 MIG」。
- 建立加速器最佳化 VM 時,建立獨立 VM 並將佈建模式設為
- 如要建立 Spot VM,請在建立加速器最佳化 VM 時,將佈建模式設為
- 您只能在有限的區域和可用區,使用
a3-highgpu-1g機型的 Confidential VM,且適用在 A3 High 機型上執行 Confidential VM 的所有限制。
事前準備
建立 Slurm 叢集前,請先完成下列步驟 (如尚未完成):
- 選擇使用模式:您選擇的使用模式會決定如何取得及使用 GPU 資源。詳情請參閱「選擇消耗選項」。
- 取得容量:取得容量的程序因消費選項而異。如要瞭解如何為所選用量方案取得運算資源,請參閱「運算資源總覽」。
- 確認您有足夠的 Filestore 或 Google Cloud Managed Lustre 配額:部署前,目標區域和可用區必須有足夠的 Filestore 或 Managed Lustre 配額。最低配額需求取決於叢集中的儲存空間服務和機器類型:
- Managed Lustre:
- A4X Max:儲存空間容量配額至少須達 18,000 GiB,處理量配額至少須達 9 GBps。
- A4X、A4、A3 Ultra、A3 Mega 和 A3 High:儲存空間容量配額至少須為 36,000 GiB,處理量配額至少須為 18 GBps。
- Filestore:
- A4X Max、A4X、A4、A3 Ultra 和 A3 Mega:HIGH_SCALE_SSD (可用區) 容量配額至少須達 10 TiB (10,240 GiB)。
- A3 High:BASIC_SSD (標準) 容量配額至少須達 2.5 TiB (2,560 GiB)。
如要查看配額或要求提高配額,請參閱下列說明:
- 如要查看專案配額,請參閱「查看 API 專屬配額」一節。
- 如果配額不足,請申請提高 Filestore 配額,或申請提高 Managed Lustre 配額。
- Managed Lustre:
- 安裝 Cluster Toolkit:如要佈建 Slurm 叢集,您必須使用 Cluster Toolkit
v1.62.0以上版本。如要安裝 Cluster Toolkit,請參閱「設定 Cluster Toolkit」。
必要的角色
如要取得部署 Slurm 叢集所需的權限,請要求管理員授予您下列 IAM 角色:
- 專案的儲存空間管理員 (
roles/storage.admin) - 專案的 Compute 執行個體管理員 (v1) (
roles/compute.instanceAdmin.v1) - 服務帳戶本身的服務帳戶使用者 (
roles/iam.serviceAccountUser) -
如要使用單一專案預留項目:專案的 Compute 執行個體管理員 (v1) (
roles/compute.instanceAdmin.v1) -
如要使用共用預留項目:
在擁有者專案和要使用預留項目的任何用戶專案中,具備 Compute 執行個體管理員 (v1) (
roles/compute.instanceAdmin.v1) 角色
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
設定儲存空間 bucket
叢集藍圖會使用 Terraform 模組佈建雲端基礎架構。使用 Terraform 時的最佳做法,是在已啟用版本的檔案中遠端儲存狀態。在 Google Cloud上,您可以建立已啟用版本管理的 Cloud Storage bucket。
如要建立這個 bucket 並透過 CLI 啟用版本管理功能,請執行下列指令:
gcloud storage buckets create gs://BUCKET_NAME \
--project=PROJECT_ID \
--default-storage-class=STANDARD --location=BUCKET_REGION \
--uniform-bucket-level-access
gcloud storage buckets update gs://BUCKET_NAME --versioning
更改下列內容:
BUCKET_NAME:Cloud Storage bucket 的名稱,必須符合 bucket 命名規定。PROJECT_ID:您的專案 ID。BUCKET_REGION:任何可用位置。
安裝 Cluster Toolkit
如要搭配 Google Cloud使用 Slurm,您必須安裝 Cluster Toolkit。如果是 Linux 和 macOS,建議您安裝預先建構的套件。
安裝 Cluster Toolkit 後,請前往包含 gcluster 二進位檔的目錄:
如果您安裝的是預先建構的套件,請切換至
gcluster-bundle目錄:cd gcluster-bundle
如果您是從來源建構二進位檔,請變更為
cluster-toolkit:cd cluster-toolkit
這項叢集部署作業需要 Cluster Toolkit
v1.62.0以上版本。查看已安裝的版本:./gcluster --version
建立部署檔案
建立部署檔案,用於指定 Cloud Storage bucket、設定網路和子網路名稱,以及設定專案 ID、區域和可用區等部署變數。
如要建立部署檔案,請按照所需機器類型和用量選項的步驟操作。
A4X Max
如要建立部署檔案,請使用文字編輯器建立名為 a4xmax-bm-slurm-deployment.yaml 的 YAML 檔案,並新增下列內容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a4x_max_cluster_size: NUMBER_OF_INSTANCES
a4x_max_reservation_name: RESERVATION_NAME
更改下列內容:
BUCKET_NAME:您在上一節建立的 Cloud Storage bucket 名稱。DEPLOYMENT_NAME:部署作業的名稱。如果建立多個叢集,請務必為每個叢集選取不重複的名稱。PROJECT_ID:您的專案 ID。REGION:預留機器所在的區域。ZONE:要佈建叢集的可用區。如果您採用預留式用量方案,帳戶團隊會在提供容量時,提供區域和可用區資訊。NUMBER_OF_INSTANCES:叢集中的 A4X Max Bare Metal 執行個體數量。您可以指定任意數量的執行個體。不過,A4X Max 執行個體會透過多節點 NVLink 系統,以 18 個執行個體 (72 個 GPU) 為一組,實體互連形成 NVLink 網域。為獲得最佳網路效能,建議您指定 18 個執行個體的倍數值 (例如 18、36 或 54)。建立 A4X Max 叢集時,A4X Max 藍圖會自動建立並套用密集配置政策,每組 18 個執行個體的 GPU 拓撲為
1x72。RESERVATION_NAME:預留項目的名稱。
A4X
如要建立部署檔案,請使用文字編輯器建立名為 a4xhigh-slurm-deployment.yaml 的 YAML 檔案,並新增下列內容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a4x_cluster_size: NUMBER_OF_INSTANCES
a4x_reservation_name: RESERVATION_NAME
更改下列內容:
BUCKET_NAME:您在上一節建立的 Cloud Storage bucket 名稱。DEPLOYMENT_NAME:部署作業的名稱。如果建立多個叢集,請務必為每個叢集選取不重複的名稱。PROJECT_ID:您的專案 ID。REGION:預留機器所在的區域。ZONE:要佈建叢集的可用區。如果您採用預留式用量方案,帳戶團隊會在提供容量時,提供區域和可用區資訊。NUMBER_OF_INSTANCES:叢集中的 A4X 執行個體數量。您可以指定任意數量的執行個體。不過,A4X 執行個體會透過多節點 NVLink 系統,以 18 個執行個體 (72 個 GPU) 為一組,實際互連形成 NVLink 網域。為獲得最佳網路效能,建議您指定 18 個執行個體的倍數值 (例如 18、36 或 54)。建立 A4X 叢集時,A4X 藍圖會自動建立並套用密集配置政策,每組 18 個執行個體都採用
1x72的 GPU 拓撲。如要進一步瞭解 A4X 拓撲,請參閱「A4X 基本概念」。RESERVATION_NAME:預留項目的名稱。
A4
您需要新增至部署檔案的參數,取決於您在部署作業中使用的使用選項。選取與用量選項佈建模式對應的分頁標籤。
取決於預留項目
如要建立部署檔案,請使用文字編輯器建立名為 a4high-slurm-deployment.yaml 的 YAML 檔案,並新增下列內容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a4h_cluster_size: NUMBER_OF_INSTANCES
a4h_reservation_name: RESERVATION_NAME
更改下列內容:
彈性啟動
如要建立部署檔案,請使用文字編輯器建立名為 a4high-slurm-deployment.yaml 的 YAML 檔案,並新增下列內容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a4h_cluster_size: NUMBER_OF_INSTANCES
a4h_dws_flex_enabled: true
更改下列內容:
BUCKET_NAME:您在上一節建立的 Cloud Storage bucket 名稱。DEPLOYMENT_NAME:部署作業的名稱。如果建立多個叢集,請務必為每個叢集選取不重複的名稱。PROJECT_ID:您的專案 ID。REGION:要佈建叢集的區域。ZONE:要佈建叢集的可用區。NUMBER_OF_INSTANCES:叢集所需的 Compute Engine 執行個體數量。
這項部署作業會佈建靜態運算節點,也就是說,叢集隨時都有一定數量的節點。如要改為啟用叢集的自動調度資源功能,請使用 examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml 檔案,並編輯 node_count_static 和 node_count_dynamic_max 的值,使其符合下列條件:
node_count_static: 0
node_count_dynamic_max: $(vars.a4h_cluster_size)
Spot
如要建立部署檔案,請使用文字編輯器建立名為 a4high-slurm-deployment.yaml 的 YAML 檔案,並新增下列內容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a4h_cluster_size: NUMBER_OF_INSTANCES
a4h_enable_spot_vm: true
更改下列內容:
BUCKET_NAME:您在上一節建立的 Cloud Storage bucket 名稱。DEPLOYMENT_NAME:部署作業的名稱。如果建立多個叢集,請務必為每個叢集選取不重複的名稱。PROJECT_ID:您的專案 ID。REGION:要佈建叢集的區域。ZONE:要佈建叢集的可用區。NUMBER_OF_INSTANCES:叢集所需的 Compute Engine 執行個體數量。
A3 Ultra
您需要新增至部署檔案的參數,取決於您在部署作業中使用的使用選項。選取與用量選項佈建模式對應的分頁標籤。
取決於預留項目
如要建立部署檔案,請使用文字編輯器建立名為 a3ultra-slurm-deployment.yaml 的 YAML 檔案,並新增下列內容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a3u_cluster_size: NUMBER_OF_INSTANCES
a3u_reservation_name: RESERVATION_NAME
更改下列內容:
彈性啟動
如要建立部署檔案,請使用文字編輯器建立名為 a3ultra-slurm-deployment.yaml 的 YAML 檔案,並新增下列內容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a3u_cluster_size: NUMBER_OF_INSTANCES
a3u_dws_flex_enabled: true
更改下列內容:
BUCKET_NAME:您在上一節建立的 Cloud Storage bucket 名稱。DEPLOYMENT_NAME:部署作業的名稱。如果建立多個叢集,請務必為每個叢集選取不重複的名稱。PROJECT_ID:您的專案 ID。REGION:要佈建叢集的區域。ZONE:要佈建叢集的可用區。NUMBER_OF_INSTANCES:叢集所需的 Compute Engine 執行個體數量。
這項部署作業會佈建靜態運算節點,也就是說,叢集隨時都有一定數量的節點。如要改為啟用叢集的自動調度資源功能,請使用 examples/machine-learning/a3-ultragpu-8g/a3ultra-slurm-blueprint.yaml 檔案,並編輯 node_count_static 和 node_count_dynamic_max 的值,使其符合下列條件:
node_count_static: 0
node_count_dynamic_max: $(vars.a3u_cluster_size)
Spot
如要建立部署檔案,請使用文字編輯器建立名為 a3ultra-slurm-deployment.yaml 的 YAML 檔案,並新增下列內容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a3u_cluster_size: NUMBER_OF_INSTANCES
a3u_enable_spot_vm: true
更改下列內容:
BUCKET_NAME:您在上一節建立的 Cloud Storage bucket 名稱。DEPLOYMENT_NAME:部署作業的名稱。如果建立多個叢集,請務必為每個叢集選取不重複的名稱。PROJECT_ID:您的專案 ID。REGION:要佈建叢集的區域。ZONE:要佈建叢集的可用區。NUMBER_OF_INSTANCES:叢集所需的 Compute Engine 執行個體數量。
A3 Mega
您需要新增至部署檔案的參數,取決於您在部署作業中使用的使用選項。選取與用量選項佈建模式對應的分頁標籤。
取決於預留項目
如要建立部署作業檔案,請建立名為 a3mega-slurm-deployment.yaml 的 YAML 檔案,並新增下列內容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
network_name_system: SYSTEM_NETWORK_NAME
subnetwork_name_system: SYSTEM_SUBNET_NAME
slurm_cluster_name: CLUSTER_NAME
a3mega_cluster_size: NUMBER_OF_INSTANCES
a3mega_reservation_name: RESERVATION_NAME
a3mega_partition_name: PARTITION_NAME
更改下列內容:
BUCKET_NAME:您在上一節建立的 Cloud Storage bucket 名稱。DEPLOYMENT_NAME:部署作業的名稱。如果建立多個叢集,請務必為每個叢集選取不重複的名稱。PROJECT_ID:您的專案 ID。SYSTEM_NETWORK_NAME:系統網路要使用的虛擬私有雲網路名稱。SYSTEM_SUBNET_NAME:系統網路要使用的子網路名稱。CLUSTER_NAME:Slurm 叢集的名稱。REGION:預留機器所在的區域。ZONE:要佈建叢集的可用區。如果您採用預留式用量方案,帳戶團隊會在提供容量時,提供區域和可用區資訊。NUMBER_OF_INSTANCES:叢集所需的 Compute Engine 執行個體數量。RESERVATION_NAME:預留項目的名稱。PARTITION_NAME:Slurm 分區的名稱。
彈性啟動
如要建立部署作業檔案,請建立名為 a3mega-slurm-deployment.yaml 的 YAML 檔案,並新增下列內容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
network_name_system: SYSTEM_NETWORK_NAME
subnetwork_name_system: SYSTEM_SUBNET_NAME
slurm_cluster_name: CLUSTER_NAME
a3mega_cluster_size: NUMBER_OF_INSTANCES
a3mega_dws_flex_enabled: true
更改下列內容:
BUCKET_NAME:您在上一節建立的 Cloud Storage bucket 名稱。DEPLOYMENT_NAME:部署作業的名稱。如果建立多個叢集,請務必為每個叢集選取不重複的名稱。PROJECT_ID:您的專案 ID。SYSTEM_NETWORK_NAME:系統網路要使用的虛擬私有雲網路名稱。SYSTEM_SUBNET_NAME:系統網路要使用的子網路名稱。CLUSTER_NAME:Slurm 叢集的名稱。REGION:要佈建叢集的區域。ZONE:要佈建叢集的可用區。NUMBER_OF_INSTANCES:叢集所需的 Compute Engine 執行個體數量。
這項部署作業會佈建靜態運算節點,也就是說,叢集隨時都有一定數量的節點。如要改為啟用叢集的自動調度資源功能,請使用 examples/machine-learning/a3-megagpu-8g/a3mega-slurm-blueprint.yaml 檔案,並編輯 node_count_static 和 node_count_dynamic_max 的值,使其符合下列條件:
node_count_static: 0
node_count_dynamic_max: $(vars.a3mega_cluster_size)
Spot
如要建立部署作業檔案,請建立名為 a3mega-slurm-deployment.yaml 的 YAML 檔案,並新增下列內容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
network_name_system: SYSTEM_NETWORK_NAME
subnetwork_name_system: SYSTEM_SUBNET_NAME
slurm_cluster_name: CLUSTER_NAME
a3mega_cluster_size: NUMBER_OF_INSTANCES
a3mega_enable_spot_vm: true
更改下列內容:
BUCKET_NAME:您在上一節建立的 Cloud Storage bucket 名稱。DEPLOYMENT_NAME:部署作業的名稱。如果建立多個叢集,請務必為每個叢集選取不重複的名稱。PROJECT_ID:您的專案 ID。SYSTEM_NETWORK_NAME:系統網路要使用的虛擬私有雲網路名稱。SYSTEM_SUBNET_NAME:系統網路要使用的子網路名稱。CLUSTER_NAME:Slurm 叢集的名稱。REGION:要佈建叢集的區域。ZONE:要佈建叢集的可用區。NUMBER_OF_INSTANCES:叢集所需的 Compute Engine 執行個體數量。
A3 High
您需要新增至部署檔案的參數,取決於您在部署作業中使用的使用選項。選取與用量選項佈建模式對應的分頁標籤。
取決於預留項目
如要建立部署作業檔案,請建立名為 a3high-slurm-deployment.yaml 的 YAML 檔案,並新增下列內容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
tcpx_kernel_login: TCPX_KERNEL_LOGIN
tcpx_kernel_password: TCPX_KERNEL_PASSWORD
keyserver_ubuntu_key: KEYSERVER_UBUNTU_KEY
network_name_system: SYSTEM_NETWORK_NAME
subnetwork_name_system: SYSTEM_SUBNET_NAME
slurm_cluster_name: CLUSTER_NAME
a3_static_cluster_size: NUMBER_OF_INSTANCES
a3_reservation_name: RESERVATION_NAME
a3_partition_name: PARTITION_NAME
更改下列內容:
BUCKET_NAME:您在上一節建立的 Cloud Storage bucket 名稱。DEPLOYMENT_NAME:部署作業的名稱。如果建立多個叢集,請務必為每個叢集選取不重複的名稱。PROJECT_ID:您的專案 ID。TCPX_KERNEL_LOGIN、TCPX_KERNEL_PASSWORD和KEYSERVER_UBUNTU_KEY:A3 High 最佳化映像檔的技術憑證。這些值由 Google Cloud 帳戶團隊提供。詳情請參閱「取得 GPUDirect-TCPX 的憑證」。SYSTEM_NETWORK_NAME:系統網路要使用的虛擬私有雲網路名稱。SYSTEM_SUBNET_NAME:系統網路要使用的子網路名稱。CLUSTER_NAME:Slurm 叢集的名稱。REGION:預留機器所在的區域。ZONE:要佈建叢集的可用區。如果您採用預留式用量方案,帳戶團隊會在提供容量時,提供區域和可用區資訊。NUMBER_OF_INSTANCES:叢集所需的 Compute Engine 執行個體數量。RESERVATION_NAME:預留項目的名稱。PARTITION_NAME:Slurm 分區的名稱。
彈性啟動
如要建立部署作業檔案,請建立名為 a3high-slurm-deployment.yaml 的 YAML 檔案,並新增下列內容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
tcpx_kernel_login: TCPX_KERNEL_LOGIN
tcpx_kernel_password: TCPX_KERNEL_PASSWORD
keyserver_ubuntu_key: KEYSERVER_UBUNTU_KEY
network_name_system: SYSTEM_NETWORK_NAME
subnetwork_name_system: SYSTEM_SUBNET_NAME
slurm_cluster_name: CLUSTER_NAME
a3_static_cluster_size: NUMBER_OF_INSTANCES
a3_dws_flex_enabled: true
更改下列內容:
BUCKET_NAME:您在上一節建立的 Cloud Storage bucket 名稱。DEPLOYMENT_NAME:部署作業的名稱。如果建立多個叢集,請務必為每個叢集選取不重複的名稱。PROJECT_ID:您的專案 ID。TCPX_KERNEL_LOGIN、TCPX_KERNEL_PASSWORD和KEYSERVER_UBUNTU_KEY:A3 High 最佳化映像檔的技術憑證。這些值由 Google Cloud 帳戶團隊提供。詳情請參閱「取得 GPUDirect-TCPX 的憑證」。SYSTEM_NETWORK_NAME:系統網路要使用的虛擬私有雲網路名稱。SYSTEM_SUBNET_NAME:系統網路要使用的子網路名稱。CLUSTER_NAME:Slurm 叢集的名稱。REGION:要佈建叢集的區域。ZONE:要佈建叢集的可用區。NUMBER_OF_INSTANCES:叢集所需的 Compute Engine 執行個體數量。
這項部署作業會佈建靜態運算節點,也就是說,叢集隨時都有一定數量的節點。如要改為啟用叢集的自動調度資源功能,請使用 examples/machine-learning/a3-highgpu-8g/a3high-slurm-blueprint.yaml 檔案,並編輯 node_count_static 和 node_count_dynamic_max 的值,使其符合下列條件:
node_count_static: 0
node_count_dynamic_max: $(vars.a3_static_cluster_size)
Spot
如要建立部署作業檔案,請建立名為 a3high-slurm-deployment.yaml 的 YAML 檔案,並新增下列內容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
tcpx_kernel_login: TCPX_KERNEL_LOGIN
tcpx_kernel_password: TCPX_KERNEL_PASSWORD
keyserver_ubuntu_key: KEYSERVER_UBUNTU_KEY
network_name_system: SYSTEM_NETWORK_NAME
subnetwork_name_system: SYSTEM_SUBNET_NAME
slurm_cluster_name: CLUSTER_NAME
a3_static_cluster_size: NUMBER_OF_INSTANCES
a3_enable_spot_vm: true
更改下列內容:
BUCKET_NAME:您在上一節建立的 Cloud Storage bucket 名稱。DEPLOYMENT_NAME:部署作業的名稱。如果建立多個叢集,請務必為每個叢集選取不重複的名稱。PROJECT_ID:您的專案 ID。TCPX_KERNEL_LOGIN、TCPX_KERNEL_PASSWORD和KEYSERVER_UBUNTU_KEY:A3 High 最佳化映像檔的技術憑證。這些值由 Google Cloud 帳戶團隊提供。詳情請參閱「取得 GPUDirect-TCPX 的憑證」。SYSTEM_NETWORK_NAME:系統網路要使用的虛擬私有雲網路名稱。SYSTEM_SUBNET_NAME:系統網路要使用的子網路名稱。CLUSTER_NAME:Slurm 叢集的名稱。REGION:要佈建叢集的區域。ZONE:要佈建叢集的可用區。NUMBER_OF_INSTANCES:叢集所需的 Compute Engine 執行個體數量。
佈建 Slurm 叢集
Cluster Toolkit 會根據您在上一個步驟中建立的部署檔案和預設叢集藍圖,佈建叢集。如要瞭解自訂映像檔,或使用自訂 OS 映像檔部署 Slurm,請參閱「Slurm 自訂映像檔」。
如要佈建叢集,請從 Cluster Toolkit 目錄中,選取下列其中一個選項,執行適用於您機器類型的 gcluster deploy 指令。這個步驟大約需要 20 到 30 分鐘。
A4X Max
A4X Max 藍圖整合了 Managed Lustre,可提供高效能的主目錄儲存空間 (/home)。藍圖會自動設定私人服務存取權 (PSA),將虛擬私有雲網路與 Managed Lustre 對接。藍圖也會在 eth0 主要網路介面上設定 Lustre 網路 (LNet)。詳情請參閱「Managed Lustre 總覽」。
./gcluster deploy -d a4xmax-bm-slurm-deployment.yaml examples/machine-learning/a4x-maxgpu-4g-metal/a4xmax-bm-slurm-blueprint.yaml --auto-approve
A4X
A4X 藍圖整合了 Managed Lustre,可提供高效能的主目錄儲存空間 (/home)。藍圖會自動設定私人服務存取權 (PSA),將虛擬私有雲網路與 Managed Lustre 對接。
根據預設,叢集藍圖會部署使用預先建構 Advanced Compute Images 的運算執行個體。這些映像檔已預先設定專用驅動程式和軟體,可執行工作負載,包括 NVIDIA 驅動程式、CUDA、網路架構和 Slurm 代理程式,因此部署期間不需手動建構映像檔。如要進一步瞭解您部署的預先建構軟體套件和設定工具,請參閱「Advanced Compute Images 總覽」。
./gcluster deploy -d a4xhigh-slurm-deployment.yaml examples/machine-learning/a4x-highgpu-4g/a4xhigh-slurm-blueprint.yaml --auto-approve
A4
A4 藍圖整合了 Managed Lustre,可提供高效能的主目錄儲存空間 (/home)。藍圖會自動設定私人服務存取權 (PSA),將虛擬私有雲網路與 Managed Lustre 對接。
根據預設,叢集藍圖會部署使用預先建構 Advanced Compute Images 的運算執行個體。這些映像檔已預先設定專用驅動程式和軟體,可執行工作負載,包括 NVIDIA 驅動程式、CUDA、網路架構和 Slurm 代理程式,因此部署期間不需手動建構映像檔。如要進一步瞭解您部署的預先建構軟體套件和設定工具,請參閱「Advanced Compute Images 總覽」。
./gcluster deploy -d a4high-slurm-deployment.yaml examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml --auto-approve
A3 Ultra
A3 Ultra 藍圖整合了 Managed Lustre,可提供高效能的主目錄儲存空間 (/home)。藍圖會自動設定私人服務存取權 (PSA),將虛擬私有雲網路與 Managed Lustre 對接。
根據預設,叢集藍圖會部署使用預先建構 Advanced Compute Images 的運算執行個體。這些映像檔已預先設定專用驅動程式和軟體,可執行工作負載,包括 NVIDIA 驅動程式、CUDA、網路架構和 Slurm 代理程式,因此部署期間不需手動建構映像檔。如要進一步瞭解您部署的預先建構軟體套件和設定工具,請參閱「Advanced Compute Images 總覽」。
./gcluster deploy -d a3ultra-slurm-deployment.yaml examples/machine-learning/a3-ultragpu-8g/a3ultra-slurm-blueprint.yaml --auto-approve
A3 Mega
A3 Mega 藍圖整合了 Managed Lustre,可提供高效能的主目錄儲存空間 (/home)。藍圖會自動設定私人服務存取權 (PSA),將虛擬私有雲網路與 Managed Lustre 對接。
./gcluster deploy -d a3mega-slurm-deployment.yaml examples/machine-learning/a3-megagpu-8g/a3mega-slurm-blueprint.yaml --auto-approve
A3 High
A3 High 藍圖整合了 Managed Lustre,可提供高效能的主目錄儲存空間 (/home)。藍圖會自動設定私人服務存取權 (PSA),將虛擬私有雲網路與 Managed Lustre 對接。
./gcluster deploy -d a3high-slurm-deployment.yaml examples/machine-learning/a3-highgpu-8g/a3high-slurm-blueprint.yaml --auto-approve
連線至 Slurm 叢集
如要存取叢集,請登入 Slurm 登入節點。嘗試連線至節點時,如果發生錯誤,請參閱「排解 SSH 錯誤」。
如要連線至叢集中的登入節點,請選取下列其中一個選項:
控制台
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
找出登入節點,名稱為
DEPLOYMENT_NAME-login-001。在節點資料列的「連線」欄中,按一下「SSH」。
gcloud
如要連線至叢集中的登入節點,請完成下列步驟:
如要找出登入節點,請使用下列
gcloud compute instances list指令:gcloud compute instances list \ --filter="name ~ login" \ --format "value(name)" \ --zones=ZONE如果輸出內容列出多個 Slurm 叢集,您可以根據先前步驟中指定的
DEPLOYMENT_NAME,找出登入節點。如要連線至登入節點,請使用
gcloud compute ssh指令和--tunnel-through-iap旗標:gcloud compute ssh LOGIN_NODE \ --tunnel-through-iap \ --zone=ZONE更改下列內容:
ZONE:節點所在的可用區。LOGIN_NODE:登入節點的名稱。
在 Slurm 叢集測試網路效能
建議您驗證已佈建叢集的功能。為此,請使用 NCCL 測試,這是專為 Google 環境最佳化的 NVIDIA Collective Communications Library (NCCL) 測試。
重新部署 Slurm 叢集
如要增加運算節點數量,或在叢集中新增分區,可能需要重新部署 Slurm 叢集,藉此更新設定。如果您修改藍圖來建構自訂映像檔,可以使用先前部署作業中的現有映像檔,加快重新部署程序。如要避免在重新部署使用自訂映像檔的叢集時建立新映像檔,請指定 --only 旗標。
如要重新部署叢集基礎架構 (cluster-env,cluster),而不執行任何映像檔建構模組,請按照下列步驟操作:
根據叢集使用的機型,選取下列其中一個選項,重新部署叢集及其 IT 基礎架構:
A4X Max
./gcluster deploy -d a4xmax-bm-slurm-deployment.yaml examples/machine-learning/a4x-maxgpu-4g-metal/a4xmax-bm-slurm-blueprint.yaml --only cluster-env,cluster --auto-approve -w
A4X
./gcluster deploy -d a4xhigh-slurm-deployment.yaml examples/machine-learning/a4x-highgpu-4g/a4xhigh-slurm-blueprint.yaml --only cluster-env,cluster --auto-approve -w
A4
./gcluster deploy -d a4high-slurm-deployment.yaml examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml --only cluster-env,cluster -w --auto-approve
A3 Ultra
./gcluster deploy -d a3ultra-slurm-deployment.yaml examples/machine-learning/a3-ultragpu-8g/a3ultra-slurm-blueprint.yaml --only cluster-env,cluster -w --auto-approve
A3 Mega
./gcluster deploy -d a3mega-slurm-deployment.yaml examples/machine-learning/a3-megagpu-8g/a3mega-slurm-blueprint.yaml --only cluster-env,cluster -w --auto-approve
A3 High
./gcluster deploy -d a3high-slurm-deployment.yaml examples/machine-learning/a3-highgpu-8g/a3high-slurm-blueprint.yaml --only cluster-env,cluster -w --auto-approve
刪除 Slurm 叢集
當您刪除叢集時,Cluster Toolkit 會自動刪除 Managed Lustre 執行個體和其中儲存的所有資料。
如要刪除 Slurm 叢集,請完成下列步驟:
如果尚未中斷與叢集的連線,請先中斷連線。
執行
destroy指令前,請前往 Cluster Toolkit 目錄的根層級。如要刪除叢集,請執行
gcluster destroy指令:./gcluster destroy DEPLOYMENT_FOLDER --auto-approve
將
DEPLOYMENT_FOLDER替換為部署資料夾的名稱。
Cluster Toolkit 刪除叢集後,輸出內容大致如下:
Destroy complete! Resources: DEPLOYMENT_NAME destroyed.