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 à la 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 :
- Choisissez une option de consommation : l'option que vous sélectionnez détermine comment vous souhaitez obtenir et utiliser les ressources de processeur virtuel.
- Obtenir de la capacité : obtenez de la capacité pour l'option de consommation sélectionnée.
- Assurez-vous de disposer d'un quota Filestore suffisant : vous avez besoin d'une capacité zonale (également appelée SSD grande capacité) minimale de 10 240 Gio.
- Pour vérifier le quota, consultez Afficher le quota spécifique à l'API.
- Si vous ne disposez pas d'un quota suffisant, demandez une augmentation de quota.
- Installez Cluster Toolkit : pour provisionner des clusters Slurm, vous devez utiliser la version
v1.62.0ou ultérieure de Cluster Toolkit.Pour installer Cluster Toolkit, consultez Configurer Cluster Toolkit.
Pour en savoir plus, consultez Choisir une option de consommation et obtenir de la capacité.
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.
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 :
BUCKET_NAME: nom du bucket Cloud Storage répondant aux exigences de dénomination des buckets.PROJECT_ID: ID de votre projet.BUCKET_REGION: tout emplacement disponible.
Ouvrir le répertoire Cluster Toolkit
Exécutez la commande suivante pour vous assurer d'être dans le répertoire Cluster Toolkit :
cd cluster-toolkit
Ce déploiement de cluster nécessite Cluster Toolkit v1.70.0 ou version ultérieure. 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 les noms de votre réseau et de votre sous-réseau, et définir les 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 pour le 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é à 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, 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 lorsque la capacité a été fournie.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, 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 que vous souhaitez 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 que votre cluster soit autoscalé, 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 à ce qui suit :
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, 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 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 le logiciel installé par le blueprint, consultez En savoir plus sur les images Slurm personnalisées.
À 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 H4D Slurm. 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 Google Cloud ou Google Cloud CLI.
Console
Accédez à la page Compute Engine > Instances de VM.
Recherchez le nœud de connexion. Son nom doit suivre le modèle
DEPLOYMENT_NAME+login-001.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 :
Identifiez le nœud de connexion à l'aide de la commande
gcloud compute instances list.gcloud compute instances list \ --zones=
ZONE\ --filter="name ~ login" --format "value(name)"Si la sortie liste plusieurs clusters Slurm, vous pouvez identifier votre nœud de connexion par le
DEPLOYMENT_NAMEque vous avez spécifié.Exécutez la commande
gcloud compute sshpour vous connecter au nœud de connexion.gcloud compute ssh LOGIN_NODE \ --zone=
ZONE--tunnel-through-iapRemplacez 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 des 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 :
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 s'applique qu'aux 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 :
Déconnectez-vous du cluster si vous ne l'avez pas déjà fait.
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.
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 doit 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.
Étapes suivantes
- Vérifier la consommation des réservations
- Afficher la topologie des VM
- Gérer les événements hôtes sur les VM
- Gérer les événements hôtes pour plusieurs réservations
- Surveiller les VM dans votre cluster Slurm
- Signaler un hôte défectueux