Créer un cluster Slurm H4D avec des fonctionnalités de gestion améliorées

Cette page explique comment créer un cluster Slurm de calcul hautes performances (HPC, High Performance Computing) qui utilise l'accès direct à la mémoire à distance (RDMA, Remote Direct Memory Access) avec des VM H4D dotées de fonctionnalités de gestion de cluster améliorées. Vous utilisez la gcloud CLI et Cluster Toolkit pour configurer le cluster.

La série de machines H4D est spécialement conçue pour répondre aux besoins des charges de travail HPC exigeantes. H4D propose des instances avec une évolutivité améliorée des charges de travail grâce à une mise en réseau Cloud RDMA avec un débit de 200 Gbit/s. Pour en savoir plus sur les types de machines optimisés pour le calcul H4D sur Google Cloud, consultez Série de machines H4D.

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 que vous sélectionnez détermine comment vous souhaitez obtenir et utiliser les ressources de processeur virtuel.
  2. Obtenez de la capacité : obtenez de la capacité pour l'option de consommation sélectionnée.
  3. Pour en savoir plus, consultez Choisir une option de consommation et obtenir de la capacité.

  4. 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 le déploiement. La capacité minimale requise dépend des types de machines de votre cluster :
    • A4X Max, A4X, A4, A3 Ultra et A3 Mega : nécessite un minimum de 10 Tio (10 240 Gio) de capacité HIGH_SCALE_SSD (zonale).
    • A3 High : nécessite un minimum de 2,5 Tio (2 560 Gio) de capacité BASIC_SSD (standard).

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

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

    Pour installer Cluster Toolkit, consultez Configurer Cluster Toolkit.

Dans la Google Cloud console, activez Cloud Shell.

Activer Cloud Shell

En bas de la fenêtre de la console, une session Cloud Shell démarre et affiche une invite de ligne de commande. Google Cloud Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

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 :

Ouvrir le répertoire Cluster Toolkit

Exécutez la commande suivante afin de vérifier que vous êtes dans le répertoire Cluster Toolkit :

cd cluster-toolkit

Ce déploiement de cluster nécessite la version v1.70.0 ou une version ultérieure de Cluster Toolkit. Pour vérifier votre version, vous pouvez exécuter la commande suivante :

./gcluster --version

Créer un fichier de déploiement

Créez un fichier de déploiement pour spécifier le bucket Cloud Storage, définir des noms pour votre réseau et 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 H4D :

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 à l'option de consommation que vous souhaitez utiliser.

Liée à la réservation

Pour créer votre fichier de déploiement, utilisez un éditeur de texte pour créer un fichier YAML nommé h4d-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
  h4d_cluster_size: NUMBER_OF_VMS
  h4d_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, veillez à 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 une réservation, 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 que vous souhaitez 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é h4d-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
  h4d_cluster_size: NUMBER_OF_VMS
  h4d_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, veillez à 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 que vous souhaitez pour le cluster.

Ce déploiement provisionne des nœuds de calcul statiques, ce qui signifie que le cluster comporte un nombre défini de nœuds à tout moment. Si vous souhaitez activer l'autoscaling de votre cluster, utilisez le fichier examples/h4d/hpc-slurm-h4d.yaml et modifiez les valeurs de node_count_static et node_count_dynamic_max pour qu'elles correspondent aux valeurs suivantes :

      node_count_static: 0
      node_count_dynamic_max: $(vars.h4d_cluster_size)

Spot

Pour créer votre fichier de déploiement, utilisez un éditeur de texte pour créer un fichier YAML nommé h4d-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
  h4d_cluster_size: NUMBER_OF_VMS
  h4d_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, veillez à 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 que vous souhaitez pour le cluster.

Provisionner un cluster Slurm H4D

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 plan, consultez En savoir plus sur les images personnalisées Slurm.

À l'aide de Cloud Shell, à partir du répertoire dans lequel vous avez installé Cluster Toolkit et créé le fichier de déploiement, vous pouvez provisionner le cluster avec la commande suivante, qui utilise le fichier de plan Slurm H4D. Cette étape prend environ 20 à 30 minutes.

./gcluster deploy -d h4d-slurm-deployment.yaml examples/hpc-slurm-h4d/hpc-slurm-h4d.yaml --auto-approve

Se connecter au cluster Slurm

Pour accéder à votre cluster, vous devez vous connecter au nœud de connexion Slurm. Pour vous connecter, vous pouvez utiliser la console ou Google Cloud CLI. Google Cloud

Console

  1. Accédez à la page Compute Engine > Instances de VM.

    Accéder à la page "Instances de VM"

  2. Recherchez le nœud de connexion. Son nom doit suivre le modèle DEPLOYMENT_NAME +login-001.

  3. Dans la colonne Connecter du nœud de connexion, cliquez sur SSH.

gcloud

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

  1. Identifiez le nœud de connexion à l'aide de la gcloud compute instances list commande.

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

    Si la sortie répertorie plusieurs clusters Slurm, vous pouvez identifier votre nœud de connexion à l'aide du DEPLOYMENT_NAME que vous avez spécifié.

  2. Utilisez la gcloud compute ssh commande pour vous connecter au nœud de connexion.

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

    Remplacez les éléments suivants :

    • ZONE: zone où se trouvent les VM de votre cluster.
    • LOGIN_NODE: nom du nœud de connexion, que vous avez identifié à l'étape précédente.

Redéployer le cluster Slurm

Si vous devez augmenter le nombre de nœuds de calcul ou ajouter de nouvelles partitions à votre cluster, vous devrez peut-être mettre à jour les configurations de votre cluster Slurm en le redéployant.

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

  1. Se connecter au cluster

  2. Exécutez la commande suivante :

    ./gcluster deploy -d h4d-slurm-deployment.yaml examples/h4d/h4d-slurm-deployment.yaml --only cluster-env,cluster --auto-approve -w
    

    Cette commande ne concerne que les redéploiements pour lesquels une image existe déjà. Elle ne redéploie que le cluster et son infrastructure.

Détruire le cluster Slurm

Pour supprimer le cluster Slurm et les instances qu'il contient, procédez comme suit :

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

  2. Avant d'exécuter la commande de destruction, accédez à la racine du répertoire Cluster Toolkit. Par défaut, DEPLOYMENT_FOLDER se trouve à 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 les éléments suivants :

    • DEPLOYMENT_FOLDER: nom du dossier de déploiement. Il est généralement identique à DEPLOYMENT_NAME.

Une fois le cluster supprimé, un message semblable à celui-ci devrait s'afficher :

  Destroy complete! Resources: xx destroyed.

Pour savoir comment détruire proprement l'infrastructure et obtenir des instructions de déploiement manuel avancées, consultez le dossier de déploiement situé à la racine du répertoire Cluster Toolkit : DEPLOYMENT_FOLDER/instructions.txt.

Étape suivante