AI によって最適化された Slurm クラスタを作成する

このドキュメントでは、A4X、A4、A3 Ultra、A3 Mega、A3 High マシンタイプを使用する Slurm クラスタを構成してデプロイする手順について説明します。これらのアクセラレータ最適化マシンタイプの詳細については、GPU マシンタイプをご覧ください。

Google Cloudで 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

始める前に

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

  1. 使用オプションを選択する: 選択した使用オプションによって、GPU リソースの取得方法と使用方法が決まります。

    詳細については、使用オプションを選択するをご覧ください。

  2. 容量を取得する: 容量を取得するプロセスは、使用オプションごとに異なります。

    選択した使用オプションの容量を取得するプロセスについては、容量の概要をご覧ください。

  3. 十分な 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(標準)容量が必要です。

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

  4. 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.

必要なロール

Compute Engine のデフォルト サービス アカウントに Slurm クラスタをデプロイするために必要な権限を付与するには、Compute Engine のデフォルト サービス アカウントに次の IAM ロールを付与するよう管理者に依頼してください。

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

管理者は、カスタムロールや他の事前定義ロールを使用して、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

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

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_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
  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_staticnode_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_staticnode_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 を使用します。

コンソール

  1. [Compute Engine] > [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 クラスタでネットワーク パフォーマンスをテストする

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

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

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

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

  1. クラスタに接続する

  2. 必要なマシンタイプのコマンドを実行します。

    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 コマンドを実行する前に削除からの保護を無効にします。手順については、既存のインスタンスで削除保護を設定または解除するをご覧ください。

  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)をご覧ください。

次のステップ