建立具備進階管理功能的 H4D Slurm 叢集

本頁說明如何建立高效能運算 (HPC) Slurm 叢集,該叢集使用遠端直接記憶體存取 (RDMA) 技術,並搭配 H4D VM,具備強化的叢集管理功能。您可以使用 gcloud CLI 和 Cluster Toolkit 設定叢集。

H4D 系列機型專為滿足嚴苛的 HPC 工作負載需求而設計。H4D 提供執行個體,透過 Cloud RDMA 網路 (200 Gbps 輸送量) 提升工作負載擴充性。如要進一步瞭解 Google Cloud上的 H4D 運算最佳化機型,請參閱 H4D 系列機型

事前準備

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

  1. 選擇使用選項:您選擇的選項會決定取得和使用 vCPU 資源的方式。
  2. 取得容量:取得所選用量選項的容量。
  3. 詳情請參閱「選擇消耗選項並取得容量」。

  4. 確認您有足夠的 Filestore 配額:您需要至少 10,240 GiB 的可用區容量 (也稱為高可擴充性固態硬碟容量)。
  5. 安裝 Cluster Toolkit:如要佈建 Slurm 叢集,您必須使用 Cluster Toolkit v1.62.0 以上版本。

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

In the Google Cloud console, activate Cloud Shell.

Activate Cloud Shell

At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

設定儲存空間值區

叢集藍圖會使用 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

更改下列內容:

開啟 Cluster Toolkit 目錄

執行下列指令,確認您位於 Cluster Toolkit 目錄:

cd cluster-toolkit

這個叢集部署作業需要 Cluster Toolkit v1.70.0 或更新版本。如要查看版本,請執行下列指令:

./gcluster --version

建立部署檔案

建立部署檔案,指定 Cloud Storage bucket、設定網路和子網路的名稱,並設定專案 ID、區域和可用區等部署變數。

如要建立部署檔案,請按照 H4D 機型適用的步驟操作: <

您需要在部署檔案中加入的參數,取決於部署作業使用的消耗量選項。選取與要使用的消費選項對應的分頁標籤。

取決於預留項目

如要建立部署檔案,請使用文字編輯器建立名為 h4d-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
  h4d_cluster_size: NUMBER_OF_VMS
  h4d_reservation_name: RESERVATION_NAME

更改下列內容:

  • BUCKET_NAME:Cloud Storage bucket 的名稱,您已在上一節中建立。
  • DEPLOYMENT_NAME:部署作業的名稱。如要建立多個叢集,請務必為每個叢集選取不重複的名稱。
  • PROJECT_ID:您的專案 ID。
  • REGION:擁有預留機器的區域。
  • ZONE:要佈建叢集的區域。如果您使用以預訂為準的用量選項,帳戶團隊會在容量交付時提供區域和地帶資訊。
  • NUMBER_OF_VMS:叢集所需的 VM 數量。
  • RESERVATION_NAME預訂的名稱。

彈性啟動

如要建立部署檔案,請使用文字編輯器建立名為 h4d-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
  h4d_cluster_size: NUMBER_OF_VMS
  h4d_dws_flex_enabled: true

更改下列內容:

  • BUCKET_NAME:Cloud Storage bucket 的名稱,您已在上一節中建立。
  • DEPLOYMENT_NAME:部署作業的名稱。如要建立多個叢集,請務必為每個叢集選取不重複的名稱。
  • PROJECT_ID:您的專案 ID。
  • REGION:要佈建叢集的區域。
  • ZONE:要佈建叢集的可用區。
  • NUMBER_OF_VMS:叢集所需的 VM 數量。

這項部署作業會佈建靜態運算節點,也就是說,叢集隨時都會有固定數量的節點。如要改為啟用叢集的自動調度資源功能,請使用 examples/h4d/hpc-slurm-h4d.yaml 檔案,並編輯 node_count_staticnode_count_dynamic_max 的值,使其符合下列條件:

      node_count_static: 0
      node_count_dynamic_max: $(vars.h4d_cluster_size)

Spot

如要建立部署檔案,請使用文字編輯器建立名為 h4d-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
  h4d_cluster_size: NUMBER_OF_VMS
  h4d_enable_spot_vm: true

更改下列內容:

  • BUCKET_NAME:Cloud Storage bucket 的名稱,您已在上一節中建立。
  • DEPLOYMENT_NAME:部署作業的名稱。如要建立多個叢集,請務必為每個叢集選取不重複的名稱。
  • PROJECT_ID:您的專案 ID。
  • REGION:要佈建叢集的區域。
  • ZONE:要佈建叢集的可用區。
  • NUMBER_OF_VMS:叢集所需的 VM 數量。

佈建 H4D Slurm 叢集

Cluster Toolkit 會根據您在上一個步驟中建立的部署檔案和預設叢集藍圖,佈建叢集。如要進一步瞭解藍圖安裝的軟體,請參閱進一步瞭解 Slurm 自訂映像檔

使用 Cloud Shell,從安裝 Cluster Toolkit 並建立部署檔案的目錄中,執行下列指令佈建叢集,該指令會使用 H4D Slurm 藍圖檔案。這個步驟大約需要 20 到 30 分鐘。

./gcluster deploy -d h4d-slurm-deployment.yaml examples/hpc-slurm-h4d/hpc-slurm-h4d.yaml --auto-approve

連線至 Slurm 叢集

如要存取叢集,請登入 Slurm 登入節點。如要登入,可以使用 Google Cloud 控制台或 Google Cloud CLI。

控制台

  1. 前往「Compute Engine」>「VM instances」(VM 執行個體) 頁面。

    前往 VM 執行個體頁面

  2. 找出登入節點。名稱應符合 DEPLOYMENT_NAME +login-001 格式。

  3. 在登入節點的「連線」欄中,按一下「SSH」

gcloud

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

  1. 使用 gcloud compute instances list 指令找出登入節點。

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

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

  2. 使用 gcloud compute ssh 指令連線至登入節點。

    gcloud compute ssh LOGIN_NODE \
      --zone=ZONE --tunnel-through-iap
    

    更改下列內容:

    • ZONE:叢集 VM 所在的可用區。
    • LOGIN_NODE:登入節點的名稱,您在上一個步驟中已識別該節點。

重新部署 Slurm 叢集

如要增加運算節點數量或在叢集中新增分割區,可能需要重新部署,藉此更新 Slurm 叢集的設定。

如要使用現有映像檔重新部署叢集,請執行下列操作:

  1. 連線至叢集

  2. 執行下列指令:

    ./gcluster deploy -d h4d-slurm-deployment.yaml examples/h4d/h4d-slurm-deployment.yaml --only cluster-env,cluster --auto-approve -w
    

    這個指令僅適用於已存在映像檔的重新部署作業,只會重新部署叢集及其基礎架構。

刪除 Slurm 叢集

如要移除 Slurm 叢集和其中的執行個體,請完成下列步驟:

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

  2. 執行刪除指令前,請前往 Cluster Toolkit 目錄的根層級。根據預設,DEPLOYMENT_FOLDER 位於 Cluster Toolkit 目錄的根層級。

  3. 執行下列指令,即可刪除叢集:

    ./gcluster destroy DEPLOYMENT_FOLDER --auto-approve

    更改下列內容:

    • DEPLOYMENT_FOLDER:部署資料夾的名稱。通常與 DEPLOYMENT_NAME 相同。

叢集移除作業完成後,您應該會看到類似以下的訊息:

  Destroy complete! Resources: xx destroyed.

如要瞭解如何徹底銷毀基礎架構,以及進階的手動部署說明,請參閱 Cluster Toolkit 目錄根層級的部署資料夾:DEPLOYMENT_FOLDER/instructions.txt

後續步驟