本文說明如何設定及部署自我管理的 Slurm 叢集,並使用 A4X Max、A4X、A4、A3 Ultra、A3 Mega 或 A3 High 機型。如要進一步瞭解這些加速器最佳化機型,請參閱「GPU 機型」一文。
本文的步驟說明如何使用 Cluster Toolkit 建立 Slurm 叢集。Cluster Toolkit 是 Google 提供的開放原始碼工具,可透過藍圖簡化叢集的設定和部署作業。您可以全權控管叢集,但也要負責管理。如要避免管理叢集的開銷,並專注於執行工作負載,請使用 Cluster Director 建立全代管叢集。
限制
視叢集中 Compute Engine 執行個體使用的機型而定,適用下列限制:
A4X Max
- 使用這類機型的執行個體無法享有續用折扣或彈性承諾使用折扣。
- 您只能在特定區域和可用區建立執行個體。
- 您無法使用永久磁碟 (區域或可用區)。只能使用 Google Cloud Hyperdisk。
- 這個機型僅適用於 NVIDIA Grace 平台。
- A4X Max 不支援變更機型。如要切換至或切換出這個機型,您必須建立新的執行個體。
- 您無法在這個機型上執行 Windows 作業系統。如需支援的 Linux 作業系統清單,請參閱 GPU 執行個體支援的作業系統。
- A4X Max 執行個體不支援下列項目:
- 2026 年 2 月 4 日前建立的 Hyperdisk ML 磁碟無法附加至 A4X Max 機器類型。
A4X
- 使用這類機型的執行個體無法享有續用折扣或彈性承諾使用折扣。
- 您只能在特定區域和可用區建立執行個體。
- 您無法使用永久磁碟 (區域或可用區)。只能使用 Google Cloud Hyperdisk。
- 這個機型僅適用於 NVIDIA Grace 平台。
- A4X 不支援變更機型。如要改用或切換這個機型,必須建立新的執行個體。
- 您無法在這個機型上執行 Windows 作業系統。如需支援的 Linux 作業系統清單,請參閱 GPU 執行個體支援的作業系統。
- 如果是 A4X 執行個體,使用
ethtool -S監控 GPU 網路時,結尾為_phy的實體連接埠計數器不會更新。如果執行個體使用 MRDMA 虛擬函式 (VF) 架構,這是預期行為。詳情請參閱「MRDMA functions and network monitoring tools」。 - A4X 執行個體不支援下列項目:
- 2026 年 2 月 4 日前建立的 Hyperdisk ML 磁碟無法附加至 A4X 機器類型。
A4
- 使用 A4 機型的執行個體無法享有續用折扣和彈性承諾使用折扣。
- A4 機型只能在特定區域和可用區使用。
- 您無法使用永久磁碟 (區域或可用區)。只能使用 Google Cloud Hyperdisk。
- A4 機型僅適用於 Emerald Rapids CPU 平台。
- 您無法將執行個體的機型變更為 A4 機型,也無法從 A4 機型變更為其他機型。您必須使用這個機型建立新的執行個體。
- A4 機器類型不支援單一租戶。
- 您無法在 A4 機型上執行 Windows 作業系統。
- 如果是 A4 執行個體,使用
ethtool -S監控 GPU 網路時,結尾為_phy的實體連接埠計數器不會更新。這是使用 MRDMA 虛擬函式 (VF) 架構的執行個體預期會發生的行為。詳情請參閱「MRDMA functions and network monitoring tools」。 - 您無法將 2026 年 2 月 4 日前建立的 Hyperdisk ML 磁碟連結至 A4 機器類型。
A3 Ultra
- 使用 A3 Ultra 機型的執行個體不適用續用折扣和彈性承諾使用折扣。
- A3 Ultra 機型僅適用於特定區域和可用區。
- 您無法使用永久磁碟 (區域或可用區)。只能使用 Google Cloud Hyperdisk。
- A3 Ultra 機型僅適用於 Emerald Rapids CPU 平台。
- A3 Ultra 機型不支援變更機型。如要改用或停用這類機器類型,必須建立新的執行個體。
- 您無法在 A3 Ultra 機型上執行 Windows 作業系統。
- A3 Ultra 機型不支援單一租戶。
- 如果是 A3 Ultra 執行個體,使用
ethtool -S監控 GPU 網路時,結尾為_phy的實體連接埠計數器不會更新。如果執行個體使用 MRDMA 虛擬函式 (VF) 架構,這是預期行為。詳情請參閱「MRDMA functions and network monitoring tools」。
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機型使用機密 VM,且在 A3 High 機型上執行機密 VM 的所有限制均適用。
事前準備
建立 Slurm 叢集前,請先完成下列步驟 (如尚未完成):
- 選擇計費方案:您選擇的計費方案會決定取得及使用 GPU 資源的方式。詳情請參閱「選擇消耗量選項」。
- 取得容量:取得容量的程序會因消費選項而異。如要瞭解如何為所選用量方案取得容量,請參閱「容量總覽」。
- 確認您有足夠的 Filestore 容量配額:部署前,您必須在目標區域中擁有足夠的 Filestore 配額。所需最低容量取決於叢集中的機器類型:
- A4X Max、A4X、A4、A3 Ultra 和 A3 Mega:需要至少 10 TiB (10,240 GiB) 的 HIGH_SCALE_SSD (可用區) 容量。
- A3 High:至少需要 2.5 TiB (2,560 GiB) 的 BASIC_SSD (標準) 容量。
如要查看配額或申請提高配額,請參閱下列文章:
- 如要查看專案的配額,請參閱「查看 API 專屬配額」一節。
- 如果配額不足,請申請提高配額。
- 安裝 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) 服務帳戶本身
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
設定儲存空間 bucket
叢集藍圖會使用 Terraform 模組佈建雲端基礎架構。使用 Terraform 時的最佳做法,是在已啟用版本的檔案中遠端儲存狀態。在 Google Cloud上,您可以建立已啟用版本管理的 Cloud Storage 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 裸機執行個體數量。您可以指定任意數量的執行個體。不過,A4X Max 執行個體會以 18 個執行個體 (72 個 GPU) 為一組,透過多節點 NVLink 系統實體互連,形成 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_VMS
a4x_reservation_name: RESERVATION_NAME
更改下列內容:
BUCKET_NAME:Cloud Storage bucket 的名稱,您已在上一個章節中建立。DEPLOYMENT_NAME:部署作業的名稱。如果建立多個叢集,請務必為每個叢集選取專屬名稱。PROJECT_ID:您的專案 ID。REGION:預留機器的區域。ZONE:您要佈建叢集的可用區。如果您使用以預訂為準的用量選項,帳戶團隊會在容量交付時提供區域和地帶資訊。NUMBER_OF_VMS:叢集中的 A4X VM 數量。您可以指定任意數量的 VM。不過,A4X VM 會以 18 個 VM (72 個 GPU) 為一組,透過多節點 NVLink 系統實體互連,形成 NVLink 網域。為獲得最佳網路效能,建議您指定 18 部 VM 的倍數值 (例如 18、36 或 54)。建立 A4X 叢集時,A4X 藍圖會自動建立並套用密集配置政策,每個 18 個 VM 的群組都會採用
1x72GPU 拓撲。如要進一步瞭解 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_VMS
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_VMS
a4h_dws_flex_enabled: true
更改下列內容:
BUCKET_NAME:Cloud Storage bucket 的名稱,您已在上一個章節中建立。DEPLOYMENT_NAME:部署作業的名稱。如果建立多個叢集,請務必為每個叢集選取專屬名稱。PROJECT_ID:您的專案 ID。REGION:要佈建叢集的區域。ZONE:要佈建叢集的可用區。NUMBER_OF_VMS:叢集所需的 VM 數量。
這項部署作業會佈建靜態運算節點,也就是說,叢集隨時都會有固定數量的節點。如要改為啟用叢集的自動調度資源功能,請使用 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_VMS
a4h_enable_spot_vm: true
更改下列內容:
BUCKET_NAME:Cloud Storage bucket 的名稱,您已在上一個章節中建立。DEPLOYMENT_NAME:部署作業的名稱。如果建立多個叢集,請務必為每個叢集選取專屬名稱。PROJECT_ID:您的專案 ID。REGION:要佈建叢集的區域。ZONE:要佈建叢集的可用區。NUMBER_OF_VMS:叢集所需的 VM 數量。
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_VMS
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_VMS
a3u_dws_flex_enabled: true
更改下列內容:
BUCKET_NAME:Cloud Storage bucket 的名稱,您已在上一個章節中建立。DEPLOYMENT_NAME:部署作業的名稱。如果建立多個叢集,請務必為每個叢集選取專屬名稱。PROJECT_ID:您的專案 ID。REGION:要佈建叢集的區域。ZONE:要佈建叢集的可用區。NUMBER_OF_VMS:叢集所需的 VM 數量。
這項部署作業會佈建靜態運算節點,也就是說,叢集隨時都會有固定數量的節點。如要改為啟用叢集的自動調度資源功能,請使用 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_VMS
a3u_enable_spot_vm: true
更改下列內容:
BUCKET_NAME:Cloud Storage bucket 的名稱,您已在上一個章節中建立。DEPLOYMENT_NAME:部署作業的名稱。如果建立多個叢集,請務必為每個叢集選取專屬名稱。PROJECT_ID:您的專案 ID。REGION:要佈建叢集的區域。ZONE:要佈建叢集的可用區。NUMBER_OF_VMS:叢集所需的 VM 數量。
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_VMS
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_VMS:叢集所需的 VM 數量。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_VMS
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_VMS:叢集所需的 VM 數量。
這項部署作業會佈建靜態運算節點,也就是說,叢集隨時都會有固定數量的節點。如要改為啟用叢集的自動調度資源功能,請使用 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_VMS
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_VMS:叢集所需的 VM 數量。
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_VMS
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_VMS:叢集所需的 VM 數量。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_VMS
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_VMS:叢集所需的 VM 數量。
這項部署作業會佈建靜態運算節點,也就是說,叢集隨時都會有固定數量的節點。如要改為啟用叢集的自動調度資源功能,請使用 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_VMS
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_VMS:叢集所需的 VM 數量。
佈建 Slurm 叢集
Cluster Toolkit 會根據您在上一個步驟中建立的部署檔案和預設叢集藍圖,佈建叢集。如要進一步瞭解藍圖安裝的軟體 (包括 NVIDIA 驅動程式和 CUDA),請參閱 Slurm 自訂映像檔。
如要佈建叢集,請選取下列其中一個選項,從 Cluster Toolkit 目錄執行機型的指令。這個步驟大約需要 20 到 30 分鐘。
A4X Max
./gcluster deploy -d a4xmax-bm-slurm-deployment.yaml examples/machine-learning/a4x-maxgpu-4g-metal/a4xmax-bm-slurm-blueprint.yaml --auto-approve
A4X
./gcluster deploy -d a4xhigh-slurm-deployment.yaml examples/machine-learning/a4x-highgpu-4g/a4xhigh-slurm-blueprint.yaml --auto-approve
A4
./gcluster deploy -d a4high-slurm-deployment.yaml examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml --auto-approve
A3 Ultra
./gcluster deploy -d a3ultra-slurm-deployment.yaml examples/machine-learning/a3-ultragpu-8g/a3ultra-slurm-blueprint.yaml --auto-approve
A3 Mega
./gcluster deploy -d a3mega-slurm-deployment.yaml examples/machine-learning/a3-megagpu-8g/a3mega-slurm-blueprint.yaml --auto-approve
A3 High
./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 標記。
如要使用現有映像檔重新部署叢集,請執行下列操作:
根據叢集使用的機型,選取下列其中一個選項。本節中的指令僅適用於已存在映像檔的重新部署作業。這項指令只會重新部署叢集及其基礎架構。
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 叢集
根據預設,A4X Max、A4X、A4 和 A3 Ultra 藍圖會在 Filestore 執行個體上,啟用防刪除功能。如要在刪除 Slurm 叢集時刪除 Filestore 執行個體,請先停用防刪除功能,再執行刪除指令。如需操作說明,請參閱「為現有執行個體設定或移除防刪除功能」。
如要刪除 Slurm 叢集,請完成下列步驟:
如果尚未中斷與叢集的連線,請先執行這項操作。
執行
destroy指令前,請前往 Cluster Toolkit 目錄的根層級。如要刪除叢集,請執行下列指令:
./gcluster destroy DEPLOYMENT_FOLDER --auto-approve
將
DEPLOYMENT_FOLDER替換為部署資料夾的名稱。
Cluster Toolkit 毀損叢集時,輸出內容會類似於下列範例:
Destroy complete! Resources: DEPLOYMENT_NAME destroyed.