建立自行管理的 Slurm 叢集,用於 AI 工作負載

本文說明如何設定及部署自行管理的 Slurm 叢集,並使用 A4X Max、A4X、A4、A3 Ultra、A3 Mega 或 A3 High 機型。如要進一步瞭解這些加速器最佳化機型,請參閱「關於 GPU 加速器」。

本文中的步驟說明如何使用 Cluster Toolkit 建立 Slurm 叢集。Cluster Toolkit 是 Google 提供的開放原始碼工具,可使用藍圖簡化叢集的設定和部署作業。您對叢集擁有完整控制權,但也必須負責管理叢集。如要避免管理叢集的負擔,並專注於執行工作負載,請使用 Cluster Director 建立全代管叢集。

限制

視叢集中 Compute Engine 執行個體使用的機器類型而定,適用下列限制:

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 High

事前準備

建立 Slurm 叢集前,請先完成下列步驟 (如尚未完成):

  1. 選擇使用模式:您選擇的使用模式會決定如何取得及使用 GPU 資源。詳情請參閱「選擇消耗選項」。
  2. 取得容量:取得容量的程序因消費選項而異。如要瞭解如何為所選用量方案取得運算資源,請參閱「運算資源總覽」。
  3. 確認您有足夠的 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)。

    如要查看配額或要求提高配額,請參閱下列說明:

  4. 安裝 Cluster Toolkit:如要佈建 Slurm 叢集,您必須使用 Cluster Toolkit v1.62.0 以上版本。

    如要安裝 Cluster Toolkit,請參閱「設定 Cluster Toolkit」。

必要的角色

如要取得部署 Slurm 叢集所需的權限,請要求管理員授予您下列 IAM 角色:

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

設定儲存空間 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

更改下列內容:

安裝 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

更改下列內容:

  • BUCKET_NAME:您在上一節建立的 Cloud Storage bucket 名稱。
  • DEPLOYMENT_NAME:部署作業的名稱。如果建立多個叢集,請務必為每個叢集選取不重複的名稱。
  • PROJECT_ID:您的專案 ID。
  • REGION:預留機器所在的區域。
  • ZONE:要佈建叢集的可用區。如果您採用預留式用量方案,帳戶團隊會在提供容量時,提供區域和可用區資訊。
  • NUMBER_OF_INSTANCES:叢集所需的 Compute Engine 執行個體數量。
  • 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

更改下列內容:

  • BUCKET_NAME:您在上一節建立的 Cloud Storage bucket 名稱。
  • DEPLOYMENT_NAME:部署作業的名稱。如果建立多個叢集,請務必為每個叢集選取不重複的名稱。
  • PROJECT_ID:您的專案 ID。
  • REGION:預留機器所在的區域。
  • ZONE:要佈建叢集的可用區。如果您採用預留式用量方案,帳戶團隊會在提供容量時,提供區域和可用區資訊。
  • NUMBER_OF_INSTANCES:叢集所需的 Compute Engine 執行個體數量。
  • 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 錯誤」。

如要連線至叢集中的登入節點,請選取下列其中一個選項:

控制台

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。

    前往 VM 執行個體頁面

  2. 找出登入節點,名稱為 DEPLOYMENT_NAME-login-001。

  3. 在節點資料列的「連線」欄中,按一下「SSH」。

gcloud

如要連線至叢集中的登入節點,請完成下列步驟:

  1. 如要找出登入節點,請使用下列 gcloud compute instances list 指令:

    gcloud compute instances list \
        --filter="name ~ login" \
        --format "value(name)" \
        --zones=ZONE
    

    如果輸出內容列出多個 Slurm 叢集,您可以根據先前步驟中指定的 DEPLOYMENT_NAME,找出登入節點。

  2. 如要連線至登入節點,請使用 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),而不執行任何映像檔建構模組,請按照下列步驟操作:

  1. 連線至叢集

  2. 根據叢集使用的機型,選取下列其中一個選項,重新部署叢集及其 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 叢集,請完成下列步驟:

  1. 如果尚未中斷與叢集的連線,請先中斷連線。

  2. 執行 destroy 指令前,請前往 Cluster Toolkit 目錄的根層級。

  3. 如要刪除叢集,請執行 gcluster destroy 指令:

    ./gcluster destroy DEPLOYMENT_FOLDER --auto-approve

    將 DEPLOYMENT_FOLDER 替換為部署資料夾的名稱。

Cluster Toolkit 刪除叢集後,輸出內容大致如下:

Destroy complete! Resources: DEPLOYMENT_NAME destroyed.

後續步驟