このドキュメントでは、A4X、A4、A3 Ultra、A3 Mega、A3 High マシンタイプを使用する Slurm クラスタを構成してデプロイする手順について説明します。これらのアクセラレータ最適化マシンタイプの詳細については、GPU マシンタイプをご覧ください。
Google Cloudで AI によって最適化された Slurm クラスタを作成するその他の方法については、以下をご覧ください。
クラスタのセットアップと管理を簡素化するマネージド Slurm 環境を使用するには、Cluster Director をご覧ください。
Slurm に 2 つの A4 仮想マシン(VM)インスタンスをデプロイするには、AI によって最適化された Slurm クラスタを作成するクイックスタートをご覧ください。
制限事項
Slurm クラスタ内の VM で使用されるマシンシリーズに応じて、次の制限が適用されます。
A4X
- これらのマシンタイプを使用するインスタンスは、継続利用割引またはフレキシブル確約利用割引の対象外となります。また、A4X Max マシンタイプは、リソースベースの確約利用割引をサポートしていません。
- インスタンスは、特定のリージョンとゾーンでのみ作成できます。
- Persistent Disk(リージョンまたはゾーン)は使用できません。Google Cloud Hyperdisk のみを使用できます。
- これらのマシンタイプは、NVIDIA Grace プラットフォームでのみ使用できます。
- A4X Max または A4X では、マシンタイプの変更はサポートされていません。これらのマシンタイプのいずれかに切り替えるには、新しい A4X Max インスタンスまたは A4X インスタンスを作成する必要があります。
- これらのマシンタイプでは Windows オペレーティング システムを実行できません。
- A4X インスタンスで
ethtool -Sを使用して GPU ネットワーキングをモニタリングすると、_phyで終わる物理ポート カウンタが更新されません。これは、MRDMA 仮想関数(VF)アーキテクチャを使用するインスタンスの想定される動作です。詳細については、MRDMA 関数とネットワーク モニタリング ツールをご覧ください。 - A4X Max インスタンスと A4X インスタンスは、以下をサポートしていません。
- 2026 年 2 月 4 日より前に作成された Hyperdisk ML ディスクを A4X マシンタイプにアタッチすることはできません。
A4
- A4 マシンタイプを使用するインスタンスは、継続利用割引とフレキシブル確約利用割引の対象外となります。
- A4 マシンタイプは、特定のリージョンとゾーンでのみ使用できます。
- Persistent Disk(リージョンまたはゾーン)は使用できません。Google Cloud Hyperdisk のみを使用できます。
- A4 マシンタイプは、Emerald Rapids CPU プラットフォームでのみ使用できます。
- インスタンスのマシンタイプを 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 Mega マシンタイプを使用するインスタンスは、継続利用割引とフレキシブル確約利用割引の対象外となります。
- A3 Mega マシンタイプは、特定のリージョンとゾーンでのみ使用できます。
- A3 Mega マシンタイプを使用するインスタンスでは、リージョン Persistent Disk を使用できません。
- A3 Mega マシンタイプは、Sapphire Rapids CPU プラットフォームでのみ使用できます。
- A3 Mega マシンタイプでは、マシンタイプの変更はサポートされていません。このマシンタイプに切り替えるには、新しいインスタンスを作成する必要があります。
- A3 Mega マシンタイプでは Windows オペレーティング システムを実行できません。
A3 High
- A3 High マシンタイプを使用するインスタンスは、継続利用割引とフレキシブル確約利用割引の対象外となります。
- A3 High マシンタイプは、特定のリージョンとゾーンでのみ使用できます。
- A3 High マシンタイプを使用するインスタンスでは、リージョン Persistent Disk を使用できません。
- A3 High マシンタイプは、Sapphire Rapids CPU プラットフォームでのみ使用できます。
- A3 High マシンタイプでは、マシンタイプの変更はサポートされていません。このマシンタイプに切り替えるには、新しいインスタンスを作成する必要があります。
- A3 High マシンタイプでは Windows オペレーティング システムを実行できません。
a3-highgpu-1g、a3-highgpu-2g、a3-highgpu-4gのマシンタイプでは、Spot VM または Flex Start VM を使用してインスタンスを作成する必要があります。これらのオプションの詳細な手順については、以下をご覧ください。- Spot VM を作成するには、アクセラレータ最適化 VM を作成するときにプロビジョニング モデルを
SPOTに設定します。 - Flex Start VM を作成するには、次のいずれかの方法を使用します。
- スタンドアロン VM を作成し、アクセラレータ最適化 VM を作成するときにプロビジョニング モデルを
FLEX_STARTに設定します。 - マネージド インスタンス グループ(MIG)でサイズ変更リクエストを作成します。手順については、GPU VM を使用して MIG を作成するをご覧ください。
- スタンドアロン VM を作成し、アクセラレータ最適化 VM を作成するときにプロビジョニング モデルを
- Spot VM を作成するには、アクセラレータ最適化 VM を作成するときにプロビジョニング モデルを
a3-highgpu-1gマシンタイプを使用する Confidential VM は、限られたリージョンとゾーンでのみ使用できます。また、A3 High マシンタイプで実行される Confidential VM のすべての制限が適用されます。
始める前に
Slurm クラスタを作成する前に、次の手順を完了します(まだ完了していない場合)。
- 使用オプションを選択する: 選択した使用オプションによって、GPU リソースの取得方法と使用方法が決まります。
詳細については、使用オプションを選択するをご覧ください。
- 容量を取得する: 容量を取得するプロセスは、使用オプションごとに異なります。
選択した使用オプションの容量を取得するプロセスについては、容量の概要をご覧ください。
- 十分な Filestore 容量割り当てがあることを確認する: デプロイする前に、ターゲット リージョンに十分な Filestore 割り当てが必要です。必要な最小容量は、クラスタ内のマシンタイプによって異なります。
- A4、A4X、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 を設定するをご覧ください。
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.
必要なロール
Compute Engine のデフォルト サービス アカウントに Slurm クラスタをデプロイするために必要な権限を付与するには、Compute Engine のデフォルト サービス アカウントに次の IAM ロールを付与するよう管理者に依頼してください。
-
プロジェクトに対する Storage オブジェクト閲覧者 (
roles/storage.objectViewer) -
プロジェクトに対する Compute インスタンス管理者(v1) (
roles/compute.instanceAdmin.v1) -
サービス アカウント自体に対するサービス アカウント ユーザー (
roles/iam.serviceAccountUser)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
管理者は、カスタムロールや他の事前定義ロールを使用して、Compute Engine のデフォルト サービス アカウントに必要な権限を付与することもできます。
ストレージ バケットを設定する
クラスタ ブループリントは、Terraform モジュールを使用してクラウド インフラストラクチャをプロビジョニングします。Terraform を使用する際のおすすめの方法は、バージョン対応のファイルに状態をリモートで保存することです。 Google Cloudでは、バージョニングが有効になっている Cloud Storage バケットを作成できます。
このバケットを作成して 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 バケットの名前。PROJECT_ID: プロジェクト ID。BUCKET_REGION: 任意の使用可能なロケーション。
Cluster Toolkit ディレクトリを開く
Google Cloudで Slurm を使用するには、Cluster Toolkit をインストールする必要があります。ツールキットをインストールしたら、次のコマンドを実行して、Cluster Toolkit ディレクトリにいることを確認します。
cd cluster-toolkit
このクラスタのデプロイには、Cluster Toolkit v1.62.0 以降が必要です。バージョンを確認するには、次のコマンドを実行します。
./gcluster --version
デプロイ ファイルを作成する
デプロイ ファイルを作成します。このファイルを使用して、Cloud Storage バケットを指定し、ネットワークとサブネットワークの名前を設定します。また、プロジェクト ID、リージョン、ゾーンなどのデプロイ変数を設定します。
デプロイ ファイルを作成するには、必要なマシンタイプと消費オプションの手順に沿って操作します。
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 バケットの名前。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 の各グループに対して、GPU トポロジが
1x72のコンパクト プレースメント ポリシーを自動的に作成して適用します。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
次のように置き換えます。
BUCKET_NAME: 前のセクションで作成した Cloud Storage バケットの名前。DEPLOYMENT_NAME: デプロイの名前。複数のクラスタを作成する場合は、それぞれに一意の名前を選択してください。PROJECT_ID: プロジェクト ID。REGION: 予約済みマシンがあるリージョン。ZONE: クラスタをプロビジョニングするゾーン。予約ベースの使用オプションを使用している場合、リージョンとゾーンの情報は、容量が割り当てられたときにアカウント チームから提供されています。NUMBER_OF_VMS: クラスタに必要な VM の数。RESERVATION_NAME: 予約の名前。
Flex Start
デプロイ ファイルを作成するには、テキスト エディタを使用して 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 バケットの名前。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)
スポット
デプロイ ファイルを作成するには、テキスト エディタを使用して 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 バケットの名前。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
次のように置き換えます。
BUCKET_NAME: 前のセクションで作成した Cloud Storage バケットの名前。DEPLOYMENT_NAME: デプロイの名前。複数のクラスタを作成する場合は、それぞれに一意の名前を選択してください。PROJECT_ID: プロジェクト ID。REGION: 予約済みマシンがあるリージョン。ZONE: クラスタをプロビジョニングするゾーン。予約ベースの使用オプションを使用している場合、リージョンとゾーンの情報は、容量が割り当てられたときにアカウント チームから提供されています。NUMBER_OF_VMS: クラスタに必要な VM の数。RESERVATION_NAME: 予約の名前。
Flex Start
デプロイ ファイルを作成するには、テキスト エディタを使用して 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 バケットの名前。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)
スポット
デプロイ ファイルを作成するには、テキスト エディタを使用して 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 バケットの名前。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
a3m_cluster_size: NUMBER_OF_VMS
a3m_reservation_name: RESERVATION_NAME
次のように置き換えます。
BUCKET_NAME: 前のセクションで作成した Cloud Storage バケットの名前。DEPLOYMENT_NAME: デプロイの名前。複数のクラスタを作成する場合は、それぞれに一意の名前を選択してください。PROJECT_ID: プロジェクト ID。REGION: 予約済みマシンがあるリージョン。ZONE: クラスタをプロビジョニングするゾーン。予約ベースの使用オプションを使用している場合、リージョンとゾーンの情報は、容量が割り当てられたときにアカウント チームから提供されています。NUMBER_OF_VMS: クラスタに必要な VM の数。RESERVATION_NAME: 予約の名前。
Flex Start
デプロイ ファイルを作成するには、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
a3m_cluster_size: NUMBER_OF_VMS
a3m_dws_flex_enabled: true
次のように置き換えます。
BUCKET_NAME: 前のセクションで作成した Cloud Storage バケットの名前。DEPLOYMENT_NAME: デプロイの名前。複数のクラスタを作成する場合は、それぞれに一意の名前を選択してください。PROJECT_ID: プロジェクト ID。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.a3m_cluster_size)
スポット
デプロイ ファイルを作成するには、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
a3m_cluster_size: NUMBER_OF_VMS
a3m_enable_spot_vm: true
次のように置き換えます。
BUCKET_NAME: 前のセクションで作成した Cloud Storage バケットの名前。DEPLOYMENT_NAME: デプロイの名前。複数のクラスタを作成する場合は、それぞれに一意の名前を選択してください。PROJECT_ID: プロジェクト ID。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
a3h_cluster_size: NUMBER_OF_VMS
a3h_reservation_name: RESERVATION_NAME
次のように置き換えます。
BUCKET_NAME: 前のセクションで作成した Cloud Storage バケットの名前。DEPLOYMENT_NAME: デプロイの名前。複数のクラスタを作成する場合は、それぞれに一意の名前を選択してください。PROJECT_ID: プロジェクト ID。REGION: 予約済みマシンがあるリージョン。ZONE: クラスタをプロビジョニングするゾーン。予約ベースの使用オプションを使用している場合、リージョンとゾーンの情報は、容量が割り当てられたときにアカウント チームから提供されています。NUMBER_OF_VMS: クラスタに必要な VM の数。RESERVATION_NAME: 予約の名前。
Flex Start
デプロイ ファイルを作成するには、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
a3h_cluster_size: NUMBER_OF_VMS
a3h_dws_flex_enabled: true
次のように置き換えます。
BUCKET_NAME: 前のセクションで作成した Cloud Storage バケットの名前。DEPLOYMENT_NAME: デプロイの名前。複数のクラスタを作成する場合は、それぞれに一意の名前を選択してください。PROJECT_ID: プロジェクト ID。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.a3h_cluster_size)
スポット
デプロイ ファイルを作成するには、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
a3h_cluster_size: NUMBER_OF_VMS
a3h_enable_spot_vm: true
次のように置き換えます。
BUCKET_NAME: 前のセクションで作成した Cloud Storage バケットの名前。DEPLOYMENT_NAME: デプロイの名前。複数のクラスタを作成する場合は、それぞれに一意の名前を選択してください。PROJECT_ID: プロジェクト ID。REGION: クラスタをプロビジョニングするリージョン。ZONE: クラスタをプロビジョニングするゾーン。NUMBER_OF_VMS: クラスタに必要な VM の数。
Slurm クラスタをプロビジョニングする
Cluster Toolkit は、前の手順で作成したデプロイ ファイルとデフォルトのクラスタ ブループリントに基づいてクラスタをプロビジョニングします。NVIDIA ドライバや CUDA など、ブループリントによってインストールされるソフトウェアの詳細については、Slurm カスタム イメージの詳細をご覧ください。
クラスタをプロビジョニングするには、Cluster Toolkit ディレクトリからマシンタイプのコマンドを実行します。このステップには 20~30 分ほどかかります。
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 ログインノードにログインする必要があります。ログインするには、 Google Cloud コンソールまたは Google Cloud CLI を使用します。
コンソール
[Compute Engine] > [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 クラスタでネットワーク パフォーマンスをテストする
プロビジョニングされたクラスタの機能を検証することをおすすめします。これを行うには、Google 環境向けに最適化された NVIDIA Collective Communications Library(NCCL)テストである NCCL テストを使用します。
Slurm クラスタを再デプロイする
コンピューティング ノードの数を増やすか、クラスタに新しいパーティションを追加する必要がある場合は、再デプロイして Slurm クラスタの構成を更新する必要があります。再デプロイは、以前のデプロイの既存のイメージを使用することで高速化できます。再デプロイ中に新しいイメージが作成されないようにするには、--only フラグを指定します。
既存のイメージを使用してクラスタを再デプロイする手順は次のとおりです。
必要なマシンタイプのコマンドを実行します。
A4X
./gcluster deploy -d a4xhigh-slurm-deployment.yaml examples/machine-learning/a4x-highgpu-4g/a4xhigh-slurm-blueprint.yaml --only cluster-env,cluster -w --auto-approve
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、A4、A3 Ultra ブループリントでは、Filestore インスタンスで削除からの保護が有効になっています。Slurm クラスタを破棄するときに Filestore インスタンスを削除するには、destroy コマンドを実行する前に削除からの保護を無効にします。手順については、既存のインスタンスで削除保護を設定または解除するをご覧ください。
まだクラスタから切断していない場合は、切断します。
破棄のコマンドを実行する前に、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)をご覧ください。
次のステップ
- 予約の消費を確認する
- コンピューティング インスタンスのトポロジを表示する
- ホストイベントの管理方法を確認する。
- Slurm クラスタの VM をモニタリングする
- NCCL/gIB を使用してテストと最適化を行う
- 障害のあるホストを報告する