本頁說明如何建立高效能運算 (HPC) Slurm 叢集,該叢集使用遠端直接記憶體存取 (RDMA) 技術,並搭配 H4D VM,具備強化的叢集管理功能。您可以使用 gcloud CLI 和 Cluster Toolkit 設定叢集。
H4D 系列機型專為滿足嚴苛的 HPC 工作負載需求而設計。H4D 提供執行個體,透過 Cloud RDMA 網路 (200 Gbps 輸送量) 提升工作負載擴充性。如要進一步瞭解 Google Cloud上的 H4D 運算最佳化機型,請參閱 H4D 系列機型。
事前準備
建立 Slurm 叢集前,請先完成下列步驟 (如尚未完成):
- 選擇使用選項:您選擇的選項會決定取得和使用 vCPU 資源的方式。
- 取得容量:取得所選用量選項的容量。
- 確認您有足夠的 Filestore 配額:您需要至少 10,240 GiB 的可用區容量 (也稱為高可擴充性固態硬碟容量)。
- 如要查看配額,請參閱「查看 API 專屬配額」一節。
- 如果配額不足,請申請提高配額。
- 安裝 Cluster Toolkit:如要佈建 Slurm 叢集,您必須使用 Cluster Toolkit
v1.62.0以上版本。如要安裝 Cluster Toolkit,請參閱「設定 Cluster Toolkit」。
詳情請參閱「選擇消耗選項並取得容量」。
In the Google Cloud console, 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
更改下列內容:
BUCKET_NAME:Cloud Storage bucket 的名稱,必須符合 bucket 命名規定。PROJECT_ID:您的專案 ID。BUCKET_REGION:任何可用的位置。
開啟 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
更改下列內容:
彈性啟動
如要建立部署檔案,請使用文字編輯器建立名為 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_static 和 node_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。
控制台
前往「Compute Engine」>「VM instances」(VM 執行個體) 頁面。
找出登入節點。名稱應符合
DEPLOYMENT_NAME+login-001格式。在登入節點的「連線」欄中,按一下「SSH」。
gcloud
如要連線至登入節點,請完成下列步驟:
使用
gcloud compute instances list指令找出登入節點。gcloud compute instances list \ --zones=
ZONE\ --filter="name ~ login" --format "value(name)"如果輸出內容列出多個 Slurm 叢集,您可以根據指定的
DEPLOYMENT_NAME找出登入節點。使用
gcloud compute ssh指令連線至登入節點。gcloud compute ssh LOGIN_NODE \ --zone=
ZONE--tunnel-through-iap更改下列內容:
ZONE:叢集 VM 所在的可用區。LOGIN_NODE:登入節點的名稱,您在上一個步驟中已識別該節點。
重新部署 Slurm 叢集
如要增加運算節點數量或在叢集中新增分割區,可能需要重新部署,藉此更新 Slurm 叢集的設定。
如要使用現有映像檔重新部署叢集,請執行下列操作:
執行下列指令:
./gcluster deploy -d h4d-slurm-deployment.yaml examples/h4d/h4d-slurm-deployment.yaml --only cluster-env,cluster --auto-approve -w
這個指令僅適用於已存在映像檔的重新部署作業,只會重新部署叢集及其基礎架構。
刪除 Slurm 叢集
如要移除 Slurm 叢集和其中的執行個體,請完成下列步驟:
如果尚未中斷與叢集的連線,請中斷連線。
執行刪除指令前,請前往 Cluster Toolkit 目錄的根層級。根據預設,DEPLOYMENT_FOLDER 位於 Cluster Toolkit 目錄的根層級。
執行下列指令,即可刪除叢集:
./gcluster destroy DEPLOYMENT_FOLDER --auto-approve
更改下列內容:
DEPLOYMENT_FOLDER:部署資料夾的名稱。通常與 DEPLOYMENT_NAME 相同。
叢集移除作業完成後,您應該會看到類似以下的訊息:
Destroy complete! Resources: xx destroyed.
如要瞭解如何徹底銷毀基礎架構,以及進階的手動部署說明,請參閱 Cluster Toolkit 目錄根層級的部署資料夾:DEPLOYMENT_FOLDER/instructions.txt