本頁說明如何建立高效能運算 (HPC) Slurm 叢集,該叢集使用遠端直接記憶體存取 (RDMA) 技術,搭配 H4D VM 和強化型叢集管理功能。您可以使用 gcloud CLI 和 Cluster Toolkit 設定叢集。
H4D 系列機器的設計宗旨,就是滿足嚴苛的 HPC 工作負載需求。H4D 提供執行個體,可透過 Cloud RDMA 網路 (處理量為 200 Gbps) 提升工作負載擴充性。如要進一步瞭解 Google Cloud上的 H4D 運算最佳化機型,請參閱 H4D 系列機型。
事前準備
建立 Slurm 叢集前,請先完成下列步驟 (如尚未完成):
- 選擇計費方案:您選擇的方案會決定取得和使用 vCPU 資源的方式。
- 取得容量:取得所選用量選項的容量。
- 確認您有足夠的 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」。
詳情請參閱「選擇消耗選項並取得容量」。
在 Google Cloud 控制台中啟用 Cloud Shell。
Google Cloud 主控台底部會開啟一個 Cloud Shell 工作階段,並顯示指令列提示。Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已針對您目前的專案設定好相關值。工作階段可能要幾秒鐘的時間才能初始化。
設定儲存空間 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 目錄
執行下列指令,確認您位於 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