Créer un cluster Slurm autogéré pour les charges de travail d'IA

Ce document explique comment configurer et déployer un cluster Slurm autogéré qui utilise les types de machines A4X Max, A4X, A4, A3 Ultra, A3 Mega ou A3 High. Pour en savoir plus sur ces types de machines optimisés pour les accélérateurs, consultez Types de machines GPU.

Les étapes de ce document vous expliquent comment créer un cluster Slurm à l'aide de Cluster Toolkit. Cluster Toolkit est un outil Open Source de Google qui simplifie la configuration et le déploiement d'un cluster à l'aide de plans. Vous avez un contrôle total sur votre cluster, mais vous êtes également responsable de sa gestion. Si vous souhaitez éviter la surcharge liée à la gestion d'un cluster et vous concentrer sur l'exécution de votre charge de travail, créez un cluster entièrement géré à l'aide de Cluster Director.

Limites

Les limites suivantes s'appliquent en fonction du type de machine utilisé par les instances Compute Engine de votre cluster :

A4X Max

A4X

A4

  • Vous ne bénéficiez ni de remises automatiques proportionnelles à une utilisation soutenue ni de remises sur engagement d'utilisation flexible pour les instances qui utilisent un type de machine A4.
  • Vous ne pouvez utiliser un type de machine A4 que dans certaines régions et zones.
  • Vous ne pouvez pas utiliser de disque persistant (régional ou zonal). Vous ne pouvez utiliser que Google Cloud Hyperdisk.
  • Le type de machine A4 n'est disponible que sur la plate-forme de processeur Emerald Rapids.
  • Vous ne pouvez pas modifier le type de machine d'une instance en type de machine A4 ni inversement. Vous devez créer une instance avec ce type de machine.
  • Les types de machines A4 ne prennent pas en charge la location unique.
  • Vous ne pouvez pas exécuter de systèmes d'exploitation Windows sur un type de machine A4.
  • Pour les instances A4, lorsque vous utilisez ethtool -S pour surveiller la mise en réseau des GPU, les compteurs de ports physiques se terminant par _phy ne sont pas mis à jour. Il s'agit du comportement attendu pour les instances qui utilisent l'architecture de fonction virtuelle (VF) MRDMA. Pour en savoir plus, consultez Fonctions MRDMA et outils de surveillance du réseau.
  • Vous ne pouvez pas associer les disques Hyperdisk ML créés avant le 4 février 2026 aux types de machines A4.

A3 Ultra

A3 Mega

A3 High

Avant de commencer

Avant de créer un cluster Slurm, si ce n'est pas déjà fait, procédez comme suit :

  1. Choisissez une option de consommation : l'option de consommation que vous choisissez détermine comment vous obtenez et utilisez les ressources GPU. Pour en savoir plus, consultez Choisir une option de consommation.
  2. Obtenir de la capacité : le processus d'obtention de la capacité diffère pour chaque option de consommation. Pour en savoir plus sur la procédure à suivre pour obtenir de la capacité pour l'option de consommation choisie, consultez Présentation de la capacité.
  3. Vérifiez que vous disposez d'un quota de capacité Filestore suffisant : vous devez disposer d'un quota Filestore suffisant dans votre région cible avant de déployer. La capacité minimale requise dépend des types de machines de votre cluster :
    • A4X Max, A4X, A4, A3 Ultra et A3 Mega : nécessite une capacité HIGH_SCALE_SSD (zonale) minimale de 10 Tio (10 240 Gio).
    • A3 High : nécessite une capacité BASIC_SSD (standard) minimale de 2,5 Tio (2 560 Gio).

    Pour vérifier votre quota ou demander une augmentation, consultez les ressources suivantes :

  4. Installez Cluster Toolkit : pour provisionner des clusters Slurm, vous devez utiliser la version v1.62.0 ou ultérieure de Cluster Toolkit.

    Pour installer Cluster Toolkit, consultez Configurer Cluster Toolkit.

Rôles requis

Pour obtenir les autorisations nécessaires pour déployer un cluster Slurm, demandez à votre administrateur de vous accorder les rôles IAM suivants :

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Configurer un bucket de stockage

Les plans de cluster utilisent des modules Terraform pour provisionner l'infrastructure cloud. Une bonne pratique consiste à stocker l'état à distance dans un fichier compatible avec la gestion des versions lorsque vous utilisez Terraform. Sur Google Cloud, vous pouvez créer un bucket Cloud Storage sur lequel la gestion des versions est activée.

Pour créer ce bucket et activer la gestion des versions à partir de la CLI, exécutez les commandes suivantes :

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

Remplacez les éléments suivants :

Installer Cluster Toolkit

Pour utiliser Slurm avec Google Cloud, vous devez installer Cluster Toolkit. Pour Linux et macOS, nous vous recommandons d'installer le bundle précompilé.

Après avoir installé Cluster Toolkit, accédez au répertoire contenant le binaire gcluster :

  • Si vous avez installé le bundle précompilé, accédez au répertoire gcluster-bundle :

    cd gcluster-bundle
  • Si vous avez créé le binaire à partir de la source, passez à cluster-toolkit :

    cd cluster-toolkit

    Ce déploiement de cluster nécessite Cluster Toolkit v1.62.0 ou version ultérieure. Pour vérifier la version actuelle, exécutez la commande suivante :

    ./gcluster --version

Créer un fichier de déploiement

Créez un fichier de déploiement que vous pouvez utiliser pour spécifier le bucket Cloud Storage, définir les noms de votre réseau et de votre sous-réseau, et définir des variables de déploiement telles que l'ID de projet, la région et la zone.

Pour créer un fichier de déploiement, suivez les étapes correspondant au type de machine et à l'option de consommation requis.

A4X Max

Pour créer votre fichier de déploiement, utilisez un éditeur de texte pour créer un fichier YAML nommé a4xmax-bm-slurm-deployment.yaml et ajoutez le contenu suivant.


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

Remplacez les éléments suivants :

  • BUCKET_NAME : nom du bucket Cloud Storage que vous avez créé dans la section précédente.
  • DEPLOYMENT_NAME : nom de votre déploiement. Si vous créez plusieurs clusters, assurez-vous de sélectionner un nom unique pour chacun d'eux.
  • PROJECT_ID : ID de votre projet.
  • REGION : région contenant les machines réservées.
  • ZONE : zone dans laquelle vous souhaitez provisionner le cluster. Si vous utilisez une option de consommation basée sur les réservations, les informations sur la région et la zone ont été fournies par votre équipe de compte lors de la livraison de la capacité.
  • NUMBER_OF_INSTANCES : nombre d'instances bare metal A4X Max dans votre cluster. Vous pouvez spécifier n'importe quel nombre d'instances. Toutefois, les instances A4X Max sont physiquement interconnectées par un système NVLink multinœud par groupes de 18 instances (72 GPU) pour former un domaine NVLink.

    Pour des performances réseau optimales, nous vous recommandons de spécifier une valeur qui est un multiple de 18 instances (par exemple, 18, 36 ou 54). Lorsque vous créez un cluster A4X Max, le blueprint A4X Max crée et applique automatiquement une stratégie d'emplacement compact avec une topologie de GPU de 1x72 pour chaque groupe de 18 instances.

  • RESERVATION_NAME : nom de votre réservation.

A4X

Pour créer votre fichier de déploiement, utilisez un éditeur de texte pour créer un fichier YAML nommé a4xhigh-slurm-deployment.yaml et ajoutez le contenu suivant.


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

Remplacez les éléments suivants :

  • BUCKET_NAME : nom du bucket Cloud Storage que vous avez créé dans la section précédente.
  • DEPLOYMENT_NAME : nom de votre déploiement. Si vous créez plusieurs clusters, assurez-vous de sélectionner un nom unique pour chacun d'eux.
  • PROJECT_ID : ID de votre projet.
  • REGION : région contenant les machines réservées.
  • ZONE : zone dans laquelle vous souhaitez provisionner le cluster. Si vous utilisez une option de consommation basée sur les réservations, les informations sur la région et la zone ont été fournies par votre équipe de compte lors de la livraison de la capacité.
  • NUMBER_OF_VMS : nombre de VM A4X dans votre cluster. Vous pouvez spécifier autant de VM que vous le souhaitez. Toutefois, les VM A4X sont physiquement interconnectées par un système NVLink multinœud par groupes de 18 VM (72 GPU) pour former un domaine NVLink.

    Pour des performances réseau optimales, nous vous recommandons de spécifier une valeur qui est un multiple de 18 VM (par exemple, 18, 36 ou 54). Lorsque vous créez un cluster A4X, le blueprint A4X crée et applique automatiquement une stratégie d'emplacement compact avec une topologie GPU de 1x72 pour chaque groupe de 18 VM. Pour en savoir plus sur la topologie A4X, consultez Principes de base d'A4X.

  • RESERVATION_NAME : nom de votre réservation.

A4

Les paramètres que vous devez ajouter à votre fichier de déploiement dépendent de l'option de consommation que vous utilisez pour votre déploiement. Sélectionnez l'onglet correspondant au modèle de provisionnement de votre option de consommation.

Lié à la réservation

Pour créer votre fichier de déploiement, utilisez un éditeur de texte pour créer un fichier YAML nommé a4high-slurm-deployment.yaml et ajoutez le contenu suivant.


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

Remplacez les éléments suivants :

  • BUCKET_NAME : nom du bucket Cloud Storage que vous avez créé dans la section précédente.
  • DEPLOYMENT_NAME : nom de votre déploiement. Si vous créez plusieurs clusters, assurez-vous de sélectionner un nom unique pour chacun d'eux.
  • PROJECT_ID : ID de votre projet.
  • REGION : région contenant les machines réservées.
  • ZONE : zone dans laquelle vous souhaitez provisionner le cluster. Si vous utilisez une option de consommation basée sur les réservations, les informations sur la région et la zone ont été fournies par votre équipe de compte lors de la livraison de la capacité.
  • NUMBER_OF_VMS : nombre de VM souhaité pour le cluster.
  • RESERVATION_NAME : nom de votre réservation.

Démarrage flexible

Pour créer votre fichier de déploiement, utilisez un éditeur de texte pour créer un fichier YAML nommé a4high-slurm-deployment.yaml et ajoutez le contenu suivant.


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

Remplacez les éléments suivants :

  • BUCKET_NAME : nom du bucket Cloud Storage que vous avez créé dans la section précédente.
  • DEPLOYMENT_NAME : nom de votre déploiement. Si vous créez plusieurs clusters, assurez-vous de sélectionner un nom unique pour chacun d'eux.
  • PROJECT_ID : ID de votre projet.
  • REGION : région dans laquelle vous souhaitez provisionner votre cluster.
  • ZONE : zone dans laquelle vous souhaitez provisionner votre cluster.
  • NUMBER_OF_VMS : nombre de VM souhaité pour le cluster.

Ce déploiement provisionne des nœuds de calcul statiques, ce qui signifie que le cluster dispose d'un nombre fixe de nœuds à tout moment. Si vous souhaitez activer l'autoscaling de votre cluster, utilisez le fichier examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml et modifiez les valeurs de node_count_static et node_count_dynamic_max pour qu'elles correspondent à ce qui suit :

      node_count_static: 0
      node_count_dynamic_max: $(vars.a4h_cluster_size)

Spot

Pour créer votre fichier de déploiement, utilisez un éditeur de texte pour créer un fichier YAML nommé a4high-slurm-deployment.yaml et ajoutez le contenu suivant.


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

Remplacez les éléments suivants :

  • BUCKET_NAME : nom du bucket Cloud Storage que vous avez créé dans la section précédente.
  • DEPLOYMENT_NAME : nom de votre déploiement. Si vous créez plusieurs clusters, assurez-vous de sélectionner un nom unique pour chacun d'eux.
  • PROJECT_ID : ID de votre projet.
  • REGION : région dans laquelle vous souhaitez provisionner votre cluster.
  • ZONE : zone dans laquelle vous souhaitez provisionner votre cluster.
  • NUMBER_OF_VMS : nombre de VM souhaité pour le cluster.

A3 Ultra

Les paramètres que vous devez ajouter à votre fichier de déploiement dépendent de l'option de consommation que vous utilisez pour votre déploiement. Sélectionnez l'onglet correspondant au modèle de provisionnement de votre option de consommation.

Lié à la réservation

Pour créer votre fichier de déploiement, utilisez un éditeur de texte pour créer un fichier YAML nommé a3ultra-slurm-deployment.yaml et ajoutez le contenu suivant.


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

Remplacez les éléments suivants :

  • BUCKET_NAME : nom du bucket Cloud Storage que vous avez créé dans la section précédente.
  • DEPLOYMENT_NAME : nom de votre déploiement. Si vous créez plusieurs clusters, assurez-vous de sélectionner un nom unique pour chacun d'eux.
  • PROJECT_ID : ID de votre projet.
  • REGION : région contenant les machines réservées.
  • ZONE : zone dans laquelle vous souhaitez provisionner le cluster. Si vous utilisez une option de consommation basée sur les réservations, les informations sur la région et la zone ont été fournies par votre équipe de compte lors de la livraison de la capacité.
  • NUMBER_OF_VMS : nombre de VM souhaité pour le cluster.
  • RESERVATION_NAME : nom de votre réservation.

Démarrage flexible

Pour créer votre fichier de déploiement, utilisez un éditeur de texte pour créer un fichier YAML nommé a3ultra-slurm-deployment.yaml et ajoutez le contenu suivant.


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

Remplacez les éléments suivants :

  • BUCKET_NAME : nom du bucket Cloud Storage que vous avez créé dans la section précédente.
  • DEPLOYMENT_NAME : nom de votre déploiement. Si vous créez plusieurs clusters, assurez-vous de sélectionner un nom unique pour chacun d'eux.
  • PROJECT_ID : ID de votre projet.
  • REGION : région dans laquelle vous souhaitez provisionner votre cluster.
  • ZONE : zone dans laquelle vous souhaitez provisionner votre cluster.
  • NUMBER_OF_VMS : nombre de VM souhaité pour le cluster.

Ce déploiement provisionne des nœuds de calcul statiques, ce qui signifie que le cluster dispose d'un nombre fixe de nœuds à tout moment. Si vous souhaitez activer l'autoscaling de votre cluster, utilisez le fichier examples/machine-learning/a3-ultragpu-8g/a3ultra-slurm-blueprint.yaml et modifiez les valeurs de node_count_static et node_count_dynamic_max pour qu'elles correspondent à ce qui suit :

      node_count_static: 0
      node_count_dynamic_max: $(vars.a3u_cluster_size)

Spot

Pour créer votre fichier de déploiement, utilisez un éditeur de texte pour créer un fichier YAML nommé a3ultra-slurm-deployment.yaml et ajoutez le contenu suivant.


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

Remplacez les éléments suivants :

  • BUCKET_NAME : nom du bucket Cloud Storage que vous avez créé dans la section précédente.
  • DEPLOYMENT_NAME : nom de votre déploiement. Si vous créez plusieurs clusters, assurez-vous de sélectionner un nom unique pour chacun d'eux.
  • PROJECT_ID : ID de votre projet.
  • REGION : région dans laquelle vous souhaitez provisionner votre cluster.
  • ZONE : zone dans laquelle vous souhaitez provisionner votre cluster.
  • NUMBER_OF_VMS : nombre de VM souhaité pour le cluster.

A3 Mega

Les paramètres que vous devez ajouter à votre fichier de déploiement dépendent de l'option de consommation que vous utilisez pour votre déploiement. Sélectionnez l'onglet correspondant au modèle de provisionnement de votre option de consommation.

Lié à la réservation

Pour créer votre fichier de déploiement, créez un fichier YAML nommé a3mega-slurm-deployment.yaml et ajoutez-y le contenu suivant.


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

Remplacez les éléments suivants :

  • BUCKET_NAME : nom du bucket Cloud Storage que vous avez créé dans la section précédente.
  • DEPLOYMENT_NAME : nom de votre déploiement. Si vous créez plusieurs clusters, assurez-vous de sélectionner un nom unique pour chacun d'eux.
  • PROJECT_ID : ID de votre projet.
  • SYSTEM_NETWORK_NAME : nom du réseau VPC à utiliser pour le réseau système.
  • SYSTEM_SUBNET_NAME : nom du sous-réseau à utiliser pour le réseau système.
  • CLUSTER_NAME : nom de votre cluster Slurm.
  • REGION : région contenant les machines réservées.
  • ZONE : zone dans laquelle vous souhaitez provisionner le cluster. Si vous utilisez une option de consommation basée sur les réservations, les informations sur la région et la zone ont été fournies par votre équipe de compte lors de la livraison de la capacité.
  • NUMBER_OF_VMS : nombre de VM souhaité pour le cluster.
  • RESERVATION_NAME : nom de votre réservation.
  • PARTITION_NAME : nom de la partition Slurm.

Démarrage flexible

Pour créer votre fichier de déploiement, créez un fichier YAML nommé a3mega-slurm-deployment.yaml et ajoutez-y le contenu suivant.


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

Remplacez les éléments suivants :

  • BUCKET_NAME : nom du bucket Cloud Storage que vous avez créé dans la section précédente.
  • DEPLOYMENT_NAME : nom de votre déploiement. Si vous créez plusieurs clusters, assurez-vous de sélectionner un nom unique pour chacun d'eux.
  • PROJECT_ID : ID de votre projet.
  • SYSTEM_NETWORK_NAME : nom du réseau VPC à utiliser pour le réseau système.
  • SYSTEM_SUBNET_NAME : nom du sous-réseau à utiliser pour le réseau système.
  • CLUSTER_NAME : nom de votre cluster Slurm.
  • REGION : région dans laquelle vous souhaitez provisionner votre cluster.
  • ZONE : zone dans laquelle vous souhaitez provisionner votre cluster.
  • NUMBER_OF_VMS : nombre de VM souhaité pour le cluster.

Ce déploiement provisionne des nœuds de calcul statiques, ce qui signifie que le cluster dispose d'un nombre fixe de nœuds à tout moment. Si vous souhaitez activer l'autoscaling de votre cluster, utilisez le fichier examples/machine-learning/a3-megagpu-8g/a3mega-slurm-blueprint.yaml et modifiez les valeurs de node_count_static et node_count_dynamic_max pour qu'elles correspondent à ce qui suit :

      node_count_static: 0
      node_count_dynamic_max: $(vars.a3mega_cluster_size)

Spot

Pour créer votre fichier de déploiement, créez un fichier YAML nommé a3mega-slurm-deployment.yaml et ajoutez-y le contenu suivant.


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

Remplacez les éléments suivants :

  • BUCKET_NAME : nom du bucket Cloud Storage que vous avez créé dans la section précédente.
  • DEPLOYMENT_NAME : nom de votre déploiement. Si vous créez plusieurs clusters, assurez-vous de sélectionner un nom unique pour chacun d'eux.
  • PROJECT_ID : ID de votre projet.
  • SYSTEM_NETWORK_NAME : nom du réseau VPC à utiliser pour le réseau système.
  • SYSTEM_SUBNET_NAME : nom du sous-réseau à utiliser pour le réseau système.
  • CLUSTER_NAME : nom de votre cluster Slurm.
  • REGION : région dans laquelle vous souhaitez provisionner votre cluster.
  • ZONE : zone dans laquelle vous souhaitez provisionner votre cluster.
  • NUMBER_OF_VMS : nombre de VM souhaité pour le cluster.

A3 High

Les paramètres que vous devez ajouter à votre fichier de déploiement dépendent de l'option de consommation que vous utilisez pour votre déploiement. Sélectionnez l'onglet correspondant au modèle de provisionnement de votre option de consommation.

Lié à la réservation

Pour créer votre fichier de déploiement, créez un fichier YAML nommé a3high-slurm-deployment.yaml et ajoutez-y le contenu suivant.


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

Remplacez les éléments suivants :

  • BUCKET_NAME : nom du bucket Cloud Storage que vous avez créé dans la section précédente.
  • DEPLOYMENT_NAME : nom de votre déploiement. Si vous créez plusieurs clusters, assurez-vous de sélectionner un nom unique pour chacun d'eux.
  • PROJECT_ID : ID de votre projet.
  • TCPX_KERNEL_LOGIN, TCPX_KERNEL_PASSWORD et KEYSERVER_UBUNTU_KEY : informations techniques sur les images optimisées A3 High. Ces valeurs vous sont fournies par l'équipe chargée de votre compte Google Cloud. Pour en savoir plus, consultez Obtenir des identifiants pour GPUDirect-TCPX.
  • SYSTEM_NETWORK_NAME : nom du réseau VPC à utiliser pour le réseau système.
  • SYSTEM_SUBNET_NAME : nom du sous-réseau à utiliser pour le réseau système.
  • CLUSTER_NAME : nom de votre cluster Slurm.
  • REGION : région contenant les machines réservées.
  • ZONE : zone dans laquelle vous souhaitez provisionner le cluster. Si vous utilisez une option de consommation basée sur les réservations, les informations sur la région et la zone ont été fournies par votre équipe de compte lors de la livraison de la capacité.
  • NUMBER_OF_VMS : nombre de VM souhaité pour le cluster.
  • RESERVATION_NAME : nom de votre réservation.
  • PARTITION_NAME : nom de la partition Slurm.

Démarrage flexible

Pour créer votre fichier de déploiement, créez un fichier YAML nommé a3high-slurm-deployment.yaml et ajoutez-y le contenu suivant.


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

Remplacez les éléments suivants :

  • BUCKET_NAME : nom du bucket Cloud Storage que vous avez créé dans la section précédente.
  • DEPLOYMENT_NAME : nom de votre déploiement. Si vous créez plusieurs clusters, assurez-vous de sélectionner un nom unique pour chacun d'eux.
  • PROJECT_ID : ID de votre projet.
  • TCPX_KERNEL_LOGIN, TCPX_KERNEL_PASSWORD et KEYSERVER_UBUNTU_KEY : informations techniques sur les images optimisées A3 High. Ces valeurs vous sont fournies par l'équipe chargée de votre compte Google Cloud. Pour en savoir plus, consultez Obtenir des identifiants pour GPUDirect-TCPX.
  • SYSTEM_NETWORK_NAME : nom du réseau VPC à utiliser pour le réseau système.
  • SYSTEM_SUBNET_NAME : nom du sous-réseau à utiliser pour le réseau système.
  • CLUSTER_NAME : nom de votre cluster Slurm.
  • REGION : région dans laquelle vous souhaitez provisionner votre cluster.
  • ZONE : zone dans laquelle vous souhaitez provisionner votre cluster.
  • NUMBER_OF_VMS : nombre de VM souhaité pour le cluster.

Ce déploiement provisionne des nœuds de calcul statiques, ce qui signifie que le cluster dispose d'un nombre fixe de nœuds à tout moment. Si vous souhaitez activer l'autoscaling de votre cluster, utilisez le fichier examples/machine-learning/a3-highgpu-8g/a3high-slurm-blueprint.yaml et modifiez les valeurs de node_count_static et node_count_dynamic_max pour qu'elles correspondent à ce qui suit :

      node_count_static: 0
      node_count_dynamic_max: $(vars.a3_static_cluster_size)

Spot

Pour créer votre fichier de déploiement, créez un fichier YAML nommé a3high-slurm-deployment.yaml et ajoutez-y le contenu suivant.


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

Remplacez les éléments suivants :

  • BUCKET_NAME : nom du bucket Cloud Storage que vous avez créé dans la section précédente.
  • DEPLOYMENT_NAME : nom de votre déploiement. Si vous créez plusieurs clusters, assurez-vous de sélectionner un nom unique pour chacun d'eux.
  • PROJECT_ID : ID de votre projet.
  • TCPX_KERNEL_LOGIN, TCPX_KERNEL_PASSWORD et KEYSERVER_UBUNTU_KEY : informations techniques sur les images optimisées A3 High. Ces valeurs vous sont fournies par l'équipe chargée de votre compte Google Cloud. Pour en savoir plus, consultez Obtenir des identifiants pour GPUDirect-TCPX.
  • SYSTEM_NETWORK_NAME : nom du réseau VPC à utiliser pour le réseau système.
  • SYSTEM_SUBNET_NAME : nom du sous-réseau à utiliser pour le réseau système.
  • CLUSTER_NAME : nom de votre cluster Slurm.
  • REGION : région dans laquelle vous souhaitez provisionner votre cluster.
  • ZONE : zone dans laquelle vous souhaitez provisionner votre cluster.
  • NUMBER_OF_VMS : nombre de VM souhaité pour le cluster.

Provisionner un cluster Slurm

Cluster Toolkit provisionne le cluster en fonction du fichier de déploiement que vous avez créé à l'étape précédente et du plan de cluster par défaut. Pour en savoir plus sur les logiciels installés par le blueprint, y compris les pilotes NVIDIA et CUDA, consultez les informations sur les images Slurm personnalisées.

Pour provisionner le cluster, sélectionnez l'une des options suivantes pour exécuter la commande correspondant à votre type de machine à partir du répertoire Cluster Toolkit. Cette étape prend environ 20 à 30 minutes.

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

Se connecter au cluster Slurm

Pour accéder à votre cluster, vous devez vous connecter au nœud de connexion Slurm. Si vous rencontrez des erreurs lorsque vous essayez de vous connecter à votre nœud, consultez Résoudre les erreurs liées à SSH.

Pour vous connecter au nœud de connexion de votre cluster, sélectionnez l'une des options suivantes :

Console

  1. Dans la console Google Cloud , accédez à la page Instances de VM.

    Accéder à la page "Instances de VM"

  2. Recherchez le nœud de connexion, dont le nom est DEPLOYMENT_NAME-login-001.

  3. Sur la ligne du nœud, dans la colonne Connecter, cliquez sur SSH.

gcloud

Pour vous connecter au nœud de connexion de votre cluster, procédez comme suit :

  1. Pour identifier le nœud de connexion, utilisez la commande gcloud compute instances list suivante :

    gcloud compute instances list \
        --filter="name ~ login" \
        --format "value(name)" \
        --zones=ZONE
    

    Si la sortie liste plusieurs clusters Slurm, vous pouvez identifier votre nœud de connexion par le DEPLOYMENT_NAME que vous avez spécifié lors des étapes précédentes.

  2. Pour vous connecter au nœud de connexion, exécutez la commande gcloud compute ssh avec l'option --tunnel-through-iap :

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

    Remplacez les éléments suivants :

    • ZONE : zone où se trouve le nœud.

    • LOGIN_NODE : nom du nœud de connexion.

Tester les performances du réseau sur le cluster Slurm

Nous vous recommandons de valider le fonctionnement des clusters provisionnés. Pour ce faire, utilisez les tests NCCL, qui sont des tests NVIDIA Collective Communications Library (NCCL) optimisés pour l'environnement Google.

Redéployer le cluster Slurm

Si vous devez augmenter le nombre de nœuds de calcul ou ajouter des partitions à votre cluster, vous devrez peut-être mettre à jour les configurations de votre cluster Slurm en le redéployant. Vous pouvez accélérer le redéploiement d'un cluster en utilisant une image existante provenant d'un déploiement précédent. Pour éviter de créer des images lors d'un redéploiement, spécifiez l'option --only.

Pour redéployer le cluster à l'aide d'une image existante, procédez comme suit :

  1. Se connecter au cluster

  2. Sélectionnez l'une des options suivantes en fonction du type de machine utilisé par votre cluster. La commande de cette section ne concerne que les redéploiements pour lesquels une image existe déjà. La commande ne redéploie que le cluster et son infrastructure.

    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

Détruire le cluster Slurm

Par défaut, les plans A4X Max, A4X, A4 et A3 Ultra activent la protection contre la suppression sur l'instance Filestore. Pour supprimer l'instance Filestore lorsque vous détruisez le cluster Slurm, désactivez la protection contre la suppression avant d'exécuter la commande de destruction. Pour obtenir des instructions, consultez Définir ou supprimer la protection contre la suppression sur une instance existante.

Pour détruire votre cluster Slurm, procédez comme suit :

  1. Si ce n'est pas déjà fait, déconnectez-vous du cluster .

  2. Avant d'exécuter la commande destroy, accédez à la racine du répertoire Cluster Toolkit.

  3. Pour détruire le cluster, exécutez la commande suivante :

    ./gcluster destroy DEPLOYMENT_FOLDER --auto-approve

    Remplacez DEPLOYMENT_FOLDER par le nom du dossier de déploiement.

Lorsque Cluster Toolkit détruit votre cluster, le résultat ressemble à ce qui suit :

Destroy complete! Resources: DEPLOYMENT_NAME destroyed.

Étapes suivantes