AI ワークロード用のセルフマネージド Slurm クラスタを作成する

このドキュメントでは、A4X Max、A4X、A4、A3 Ultra、A3 Mega、A3 High マシンタイプを使用するセルフマネージド Slurm クラスタを構成してデプロイする方法について説明します。これらのアクセラレータ最適化マシンタイプの詳細については、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 マシンタイプでは 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

始める前に

Slurm クラスタを作成する前に、次の手順を完了します(まだ完了していない場合)。

  1. 使用オプションを選択する: 選択した使用オプションによって、GPU リソースの取得方法と使用方法が決まります。詳細については、使用オプションを選択するをご覧ください。
  2. 容量を取得する: 容量を取得するプロセスは、使用オプションごとに異なります。選択した使用オプションの容量を取得するプロセスについては、容量の概要をご覧ください。
  3. 十分な 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(標準)容量が必要です。

    割り当てを確認するか、割り当ての増加をリクエストするには、以下をご覧ください。

  4. Cluster Toolkit をインストールする: Slurm クラスタをプロビジョニングするには、Cluster Toolkit バージョン v1.62.0 以降を使用する必要があります。

    Cluster Toolkit をインストールするには、Cluster Toolkit を設定するをご覧ください。

必要なロール

Slurm クラスタのデプロイに必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

ストレージ バケットを設定する

クラスタ ブループリントは、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

次のように置き換えます。

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 バケットを指定し、ネットワークとサブネットワークの名前を設定します。また、プロジェクト 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 バケットの名前。
  • DEPLOYMENT_NAME: デプロイの名前。複数のクラスタを作成する場合は、それぞれに一意の名前を選択してください。
  • PROJECT_ID: プロジェクト ID。
  • REGION: 予約済みマシンがあるリージョン。
  • ZONE: クラスタをプロビジョニングするゾーン。予約ベースの使用オプションを使用している場合、リージョンとゾーンの情報は、容量が割り当てられたときにアカウント チームから提供されています。
  • NUMBER_OF_INSTANCES: クラスタ内の A4X Max ベアメタル インスタンスの数。任意の数のインスタンスを指定できます。ただし、A4X Max インスタンスは、18 個のインスタンス(72 個の GPU)のグループでマルチノード NVLink システムによって物理的に相互接続され、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_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_staticnode_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_staticnode_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
  network_name_system: SYSTEM_NETWORK_NAME
  subnetwork_name_system: SYSTEM_SUBNET_NAME
  slurm_cluster_name: CLUSTER_NAME
  a3mega_cluster_size: NUMBER_OF_VMS
  a3mega_reservation_name: RESERVATION_NAME
  a3mega_partition_name: PARTITION_NAME

次のように置き換えます。

  • BUCKET_NAME: 前のセクションで作成した Cloud Storage バケットの名前。
  • DEPLOYMENT_NAME: デプロイの名前。複数のクラスタを作成する場合は、それぞれに一意の名前を選択してください。
  • PROJECT_ID: プロジェクト ID。
  • SYSTEM_NETWORK_NAME: システム ネットワークに使用する VPC ネットワークの名前。
  • SYSTEM_SUBNET_NAME: システム ネットワークに使用するサブネットワークの名前。
  • CLUSTER_NAME: Slurm クラスタの名前。
  • REGION: 予約済みマシンがあるリージョン。
  • ZONE: クラスタをプロビジョニングするゾーン。予約ベースの使用オプションを使用している場合、リージョンとゾーンの情報は、容量が割り当てられたときにアカウント チームから提供されています。
  • NUMBER_OF_VMS: クラスタに必要な VM の数。
  • RESERVATION_NAME: 予約の名前。
  • PARTITION_NAME: Slurm パーティションの名前。

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
  network_name_system: SYSTEM_NETWORK_NAME
  subnetwork_name_system: SYSTEM_SUBNET_NAME
  slurm_cluster_name: CLUSTER_NAME
  a3mega_cluster_size: NUMBER_OF_VMS
  a3mega_dws_flex_enabled: true

次のように置き換えます。

  • BUCKET_NAME: 前のセクションで作成した Cloud Storage バケットの名前。
  • DEPLOYMENT_NAME: デプロイの名前。複数のクラスタを作成する場合は、それぞれに一意の名前を選択してください。
  • PROJECT_ID: プロジェクト ID。
  • SYSTEM_NETWORK_NAME: システム ネットワークに使用する VPC ネットワークの名前。
  • SYSTEM_SUBNET_NAME: システム ネットワークに使用するサブネットワークの名前。
  • CLUSTER_NAME: Slurm クラスタの名前。
  • REGION: クラスタをプロビジョニングするリージョン。
  • ZONE: クラスタをプロビジョニングするゾーン。
  • NUMBER_OF_VMS: クラスタに必要な VM の数。

このデプロイでは静的コンピューティング ノードがプロビジョニングされます。つまり、クラスタには常に一定数のノードが存在します。クラスタで自動スケーリングを有効にする場合は、examples/machine-learning/a3-megagpu-8g/a3mega-slurm-blueprint.yaml ファイルを使用して、node_count_staticnode_count_dynamic_max の値を次のように編集します。

      node_count_static: 0
      node_count_dynamic_max: $(vars.a3mega_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
  network_name_system: SYSTEM_NETWORK_NAME
  subnetwork_name_system: SYSTEM_SUBNET_NAME
  slurm_cluster_name: CLUSTER_NAME
  a3mega_cluster_size: NUMBER_OF_VMS
  a3mega_enable_spot_vm: true

次のように置き換えます。

  • BUCKET_NAME: 前のセクションで作成した Cloud Storage バケットの名前。
  • DEPLOYMENT_NAME: デプロイの名前。複数のクラスタを作成する場合は、それぞれに一意の名前を選択してください。
  • PROJECT_ID: プロジェクト ID。
  • SYSTEM_NETWORK_NAME: システム ネットワークに使用する VPC ネットワークの名前。
  • SYSTEM_SUBNET_NAME: システム ネットワークに使用するサブネットワークの名前。
  • CLUSTER_NAME: Slurm クラスタの名前。
  • 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
  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_VMS
  a3_reservation_name: RESERVATION_NAME
  a3_partition_name: PARTITION_NAME

次のように置き換えます。

  • BUCKET_NAME: 前のセクションで作成した Cloud Storage バケットの名前。
  • DEPLOYMENT_NAME: デプロイの名前。複数のクラスタを作成する場合は、それぞれに一意の名前を選択してください。
  • PROJECT_ID: プロジェクト ID。
  • TCPX_KERNEL_LOGINTCPX_KERNEL_PASSWORDKEYSERVER_UBUNTU_KEY: A3 High 最適化イメージの技術認証情報。これらの値は、Google Cloud のアカウント担当チームから提供されます。詳細については、GPUDirect-TCPX の認証情報を取得するをご覧ください。
  • SYSTEM_NETWORK_NAME: システム ネットワークに使用する VPC ネットワークの名前。
  • SYSTEM_SUBNET_NAME: システム ネットワークに使用するサブネットワークの名前。
  • CLUSTER_NAME: Slurm クラスタの名前。
  • REGION: 予約済みマシンがあるリージョン。
  • ZONE: クラスタをプロビジョニングするゾーン。予約ベースの使用オプションを使用している場合、リージョンとゾーンの情報は、容量が割り当てられたときにアカウント チームから提供されています。
  • NUMBER_OF_VMS: クラスタに必要な VM の数。
  • RESERVATION_NAME: 予約の名前。
  • PARTITION_NAME: Slurm パーティションの名前。

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
  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_VMS
  a3_dws_flex_enabled: true

次のように置き換えます。

  • BUCKET_NAME: 前のセクションで作成した Cloud Storage バケットの名前。
  • DEPLOYMENT_NAME: デプロイの名前。複数のクラスタを作成する場合は、それぞれに一意の名前を選択してください。
  • PROJECT_ID: プロジェクト ID。
  • TCPX_KERNEL_LOGINTCPX_KERNEL_PASSWORDKEYSERVER_UBUNTU_KEY: A3 High 最適化イメージの技術認証情報。これらの値は、Google Cloud のアカウント担当チームから提供されます。詳細については、GPUDirect-TCPX の認証情報を取得するをご覧ください。
  • SYSTEM_NETWORK_NAME: システム ネットワークに使用する VPC ネットワークの名前。
  • SYSTEM_SUBNET_NAME: システム ネットワークに使用するサブネットワークの名前。
  • CLUSTER_NAME: Slurm クラスタの名前。
  • REGION: クラスタをプロビジョニングするリージョン。
  • ZONE: クラスタをプロビジョニングするゾーン。
  • NUMBER_OF_VMS: クラスタに必要な VM の数。

このデプロイでは静的コンピューティング ノードがプロビジョニングされます。つまり、クラスタには常に一定数のノードが存在します。クラスタで自動スケーリングを有効にする場合は、examples/machine-learning/a3-highgpu-8g/a3high-slurm-blueprint.yaml ファイルを使用して、node_count_staticnode_count_dynamic_max の値を次のように編集します。

      node_count_static: 0
      node_count_dynamic_max: $(vars.a3_static_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
  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_VMS
  a3_enable_spot_vm: true

次のように置き換えます。

  • BUCKET_NAME: 前のセクションで作成した Cloud Storage バケットの名前。
  • DEPLOYMENT_NAME: デプロイの名前。複数のクラスタを作成する場合は、それぞれに一意の名前を選択してください。
  • PROJECT_ID: プロジェクト ID。
  • TCPX_KERNEL_LOGINTCPX_KERNEL_PASSWORDKEYSERVER_UBUNTU_KEY: A3 High 最適化イメージの技術認証情報。これらの値は、Google Cloud のアカウント担当チームから提供されます。詳細については、GPUDirect-TCPX の認証情報を取得するをご覧ください。
  • SYSTEM_NETWORK_NAME: システム ネットワークに使用する VPC ネットワークの名前。
  • SYSTEM_SUBNET_NAME: システム ネットワークに使用するサブネットワークの名前。
  • CLUSTER_NAME: Slurm クラスタの名前。
  • REGION: クラスタをプロビジョニングするリージョン。
  • ZONE: クラスタをプロビジョニングするゾーン。
  • NUMBER_OF_VMS: クラスタに必要な VM の数。

Slurm クラスタをプロビジョニングする

Cluster Toolkit は、前の手順で作成したデプロイ ファイルとデフォルトのクラスタ ブループリントに基づいてクラスタをプロビジョニングします。NVIDIA ドライバや CUDA など、ブループリントによってインストールされるソフトウェアの詳細については、Slurm カスタム イメージの詳細をご覧ください。

クラスタをプロビジョニングするには、次のいずれかのオプションを選択して、Cluster Toolkit ディレクトリからマシンタイプのコマンドを実行します。このステップには 20 ~ 30 分ほどかかります。

A4X Max

./gcluster deploy -d a4xmax-bm-slurm-deployment.yaml examples/machine-learning/a4x-maxgpu-4g-metal/a4xmax-bm-slurm-blueprint.yaml --auto-approve

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 ログインノードにログインする必要があります。ノードへの接続を試みたときにエラーが発生した場合は、SSH エラーのトラブルシューティングをご覧ください。

クラスタのログインノードに接続するには、次のいずれかのオプションを選択します。

コンソール

  1. Google Cloud コンソールで、[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. ログインノードに接続するには、--tunnel-through-iap フラグを指定して gcloud compute ssh コマンドを使用します。

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

    次のように置き換えます。

    • ZONE: ノードが存在するゾーン。

    • LOGIN_NODE: ログインノードの名前。

Slurm クラスタでネットワーク パフォーマンスをテストする

プロビジョニングされたクラスタの機能を検証することをおすすめします。これを行うには、Google 環境向けに最適化された NVIDIA Collective Communications Library(NCCL)テストである NCCL テストを使用します。

Slurm クラスタを再デプロイする

コンピューティング ノードの数を増やすか、クラスタに新しいパーティションを追加する必要がある場合は、再デプロイして Slurm クラスタの構成を更新する必要があります。クラスタの再デプロイは、以前のデプロイの既存のイメージを使用することで高速化できます。再デプロイ中に新しいイメージが作成されないようにするには、--only フラグを指定します。

既存のイメージを使用してクラスタを再デプロイする手順は次のとおりです。

  1. クラスタに接続する

  2. クラスタで使用するマシンタイプに基づいて、次のいずれかのオプションを選択します。このセクションのコマンドは、イメージがすでに存在する場合の再デプロイ専用です。このコマンドは、クラスタとそのインフラストラクチャのみを再デプロイします。

    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 クラスタを破棄する

デフォルトでは、A4X Max、A4X、A4、A3 Ultra ブループリントでは、Filestore インスタンスで削除からの保護が有効になっています。Slurm クラスタを破棄するときに Filestore インスタンスを削除するには、destroy コマンドを実行する前に削除からの保護を無効にします。手順については、既存のインスタンスで削除からの保護を設定または解除するをご覧ください。

Slurm クラスタを破棄する手順は次のとおりです。

  1. まだクラスタから切断していない場合は、切断します。

  2. destroy コマンドを実行する前に、Cluster Toolkit ディレクトリのルートに移動します。

  3. クラスタを破棄するには、次のコマンドを実行します。

    ./gcluster destroy DEPLOYMENT_FOLDER --auto-approve

    DEPLOYMENT_FOLDER は、デプロイ フォルダの名前に置き換えます。

Cluster Toolkit がクラスタを破棄すると、出力は次のようになります。

Destroy complete! Resources: DEPLOYMENT_NAME destroyed.

次のステップ