Créer un cluster Slurm autogéré avec une VM A4
Cette page explique comment créer et déployer rapidement un cluster Slurm optimisé pour l'IA à l'aide de types de machines A4 optimisés pour les accélérateurs avec la gcloud CLI et Cluster Toolkit.
Les types de machines A4 optimisées pour les accélérateurs sont associés à des GPU NVIDIA B200. Ils sont spécifiquement conçus pour les calculs d'IA intensifs afin d'aider votre cluster Slurm à gérer efficacement l'entraînement et l'inférence de modèles à grande échelle. Pour en savoir plus sur les types de machines optimisés pour les accélérateurs A4 sur Google Cloud, consultez Types de machines GPU.
Vous pouvez également utiliser Cluster Director pour créer un cluster Slurm basé sur A4. Cluster Director est un service géré qui simplifie et automatise le déploiement de clusters, ce qui réduit les coûts opérationnels. Pour en savoir plus, consultez Créer un cluster Slurm entièrement géré avec deux VM A4.
Pour obtenir des instructions détaillées sur cette tâche directement dans la console Google Cloud , cliquez sur Visite guidée :
Présentation du tutoriel
Ce tutoriel décrit les étapes à suivre pour configurer un cluster Slurm optimisé pour l'IA à l'aide de types de machines A4 optimisés pour les accélérateurs. Plus précisément, vous allez configurer un cluster avec des machines virtuelles Compute Engine, créer un bucket Cloud Storage pour stocker les modules Terraform nécessaires, et configurer une instance Filestore pour provisionner votre cluster Slurm. La procédure à suivre pour réaliser ce tutoriel comporte plusieurs étapes :
- configurer votre projet Google Cloud avec les autorisations requises pour ce guide et les variables d'environnement pour réserver votre machine ;
- créer un bucket Cloud Storage ;
- Configurez vos variables d'environnement de stockage.
- configurer Cluster Toolkit ;
- accéder au répertoire Cluster Toolkit ;
- créer un fichier YAML pour le déploiement Slurm ;
- provisionner un cluster Slurm à l'aide d'un plan ;
- Vous connecter au cluster Slurm.
Avant de commencer
- Réservez un bloc de capacité pour une machine
a4-highgpu-8g. Assurez-vous de disposer d'un quota Filestore suffisant pour provisionner le cluster Slurm. Vous avez besoin d'une capacité zonale (également appelée SSD grande capacité) minimale de 10 240 Gio.
Pour vérifier votre quota Filestore, consultez Quotas et limites du système dans la console Google Cloud et filtrez la table pour n'afficher que les ressources Filestore.
- Pour obtenir des instructions détaillées sur la vérification des quotas Filestore, consultez Afficher le quota spécifique à l'API.
- Si vous ne disposez pas d'un quota suffisant, demandez une augmentation de quota.
Assurez-vous que la facturation est activée pour votre projet Google Cloud .
Activez les API Compute Engine, Filestore, Cloud Storage, Service Usage et Cloud Resource Manager :
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 :
- Administrateur de l'espace de stockage (
roles/storage.admin) sur votre projet - Administrateur d'instances Compute (v1) (
roles/compute.instanceAdmin.v1) sur votre projet - Utilisateur du compte de service (
roles/iam.serviceAccountUser) sur le compte de service lui-même
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.
Coûts
Le coût de ce tutoriel varie en fonction de chaque section que vous terminez, comme la configuration du tutoriel ou l'exécution de jobs. Vous pouvez calculer les coûts à l'aide du simulateur de coût.
Pour estimer le coût de la configuration de ce tutoriel, utilisez les spécifications suivantes :
- Capacité Filestore (standard) par région : 10 240 Gio.
- Disque persistant standard :
pd-standardde 50 Go pour le nœud de connexion Slurm. - Disque persistant SSD hautes performances :
pd-ssdde 50 Go pour le contrôleur Slurm. - Instance de VM : 1
a4-highgpu-8g
Lancer Cloud Shell
Dans ce tutoriel, vous utilisez Cloud Shell, un environnement de shell permettant de gérer les ressources hébergées sur Google Cloud.
Cloud Shell est préinstallé avec la Google Cloud CLI. La gcloud CLI fournit l'interface de ligne de commande principale pour Google Cloud. Lancez Cloud Shell :
Accédez à la console Google Cloud .
Dans l'angle supérieur droit de la console, cliquez sur le bouton Activer Cloud Shell :

Une session Cloud Shell démarre et affiche une invite de ligne de commande.
Ce shell vous permet d'exécuter les commandes gcloud et Cluster Toolkit.
Définir les variables de capacité de réservation de machines
Dans Cloud Shell, définissez les variables d'environnement de capacité de réservation suivantes. Ces variables d'environnement définissent des valeurs d'espace réservé pour configurer votre projet afin d'accéder à votre machine a4-highgpu-8g réservée.
export A4_RESERVATION_PROJECT_ID=A4_RESERVATION_PROJECT_ID export A4_RESERVATION_NAME=A4_RESERVATION_NAME export A4_DEPLOYMENT_NAME=A4_DEPLOYMENT_NAME export A4_REGION=A4_REGION export A4_ZONE=A4_ZONE export A4_DEPLOYMENT_FILE_NAME=A4_DEPLOYMENT_FILE_NAME
Remplacez les éléments suivants :
A4_RESERVATION_PROJECT_ID: ID du projet Google Cloudauquel le bloc de réservation du type de machine A4 a été attribué.A4_RESERVATION_NAME: nom de la réservation de GPU utilisée dans votre projet. Exemple :a4high-exrA4_DEPLOYMENT_NAME: nom unique du déploiement de votre cluster Slurm. Exemple :my-slurm-cluster-deploymentA4_REGION: région qui exécute le bloc de réservation de machine A4. Exemple :us-central1A4_ZONE: zone contenant les machines réservées. Cette chaîne doit contenir à la fois la région et la zone. Exemple :us-central1-a.A4_DEPLOYMENT_FILE_NAME: nom unique du fichier YAML de votre plan Slurm. Si vous suivez ce tutoriel plusieurs fois, choisissez un nom de déploiement unique à chaque fois.
Accéder au projet approuvé pour le type de machine A4
Passez au projet Google Cloud qui contient le bloc de réservation approuvé pour le type de machine A4 :
gcloud config set project ${A4_RESERVATION_PROJECT_ID}Créer un bucket Cloud Storage
Lorsque vous déployez un plan et ses modules, Terraform crée un fichier d'état qui mappe votre plan à vos ressources dans le cloud. Pour conserver un enregistrement fiable de votre infrastructure, il est recommandé de stocker vos fichiers d'état Terraform dans un emplacement distant compatible avec la gestion des versions, tel qu'un bucket Cloud Storage pour lequel la gestion des versions est activée.
Pour stocker votre fichier d'état, créez un bucket Cloud Storage avec la gestion des versions activée à partir de Cloud Shell :
gcloud storage buckets create gs://${BUCKET_NAME} \
--project=${A4_RESERVATION_PROJECT_ID} \
--default-storage-class=STANDARD \
--location=${BUCKET_LOCATION} \
--uniform-bucket-level-access
gcloud storage buckets update gs://${BUCKET_NAME} --versioning
Remplacez les éléments suivants :
BUCKET_NAME: nom du nouveau bucket Cloud Storage, qui doit répondre aux exigences de dénomination des buckets.A4_RESERVATION_PROJECT_ID: ID du projet Google Cloudauquel le bloc de réservation du type de machine A4 a été attribué.BUCKET_LOCATION: région Google Clouddans laquelle créer votre bucket Cloud Storage, par exempleus-central1. Terraform stocke votre fichier d'état à cet emplacement.
Définir des variables de capacité de stockage
Dans Cloud Shell, créez les variables d'environnement pour le bucket que vous avez créé à l'étape précédente.
export BUCKET_NAME=BUCKET_NAME export BUCKET_LOCATION=BUCKET_LOCATION
Remplacez les éléments suivants :
BUCKET_NAME: nom de votre bucket.BUCKET_LOCATION: région dans laquelle se trouve votre bucket.
Configurer Cluster Toolkit
Pour créer un cluster Slurm dans un projet Google Cloud , vous pouvez utiliser Cluster Toolkit afin de gérer le déploiement et le provisionnement le cluster. Cluster Toolkit est un logiciel Open Source proposé par Google Cloudpermettant de simplifier le processus de déploiement des charges de travail sur Google Cloud.
Suivez la procédure ci-dessous pour configurer Cluster Toolkit.
Installer Cluster Toolkit
Pour installer Cluster Toolkit, téléchargez et extrayez le bundle binaire prédéfini. Les archives ZIP et TAR (.tgz) sont disponibles.
Accédez à la page Versions de Cluster Toolkit sur GitHub.
Téléchargez le bundle correspondant à votre plate-forme et à votre architecture. Par exemple, si vous utilisez Cloud Shell, téléchargez
gcluster_bundle_linux_amd64.zipougcluster_bundle_linux_amd64.tar.gz.Dans votre terminal, extrayez les fichiers du bundle dans un nouveau répertoire
cluster-toolkit:Si vous avez téléchargé un bundle ZIP, extrayez les fichiers à l'aide de la commande
unzip:unzip BUNDLE_FILENAME -d cluster-toolkit
Si vous avez téléchargé un bundle TAR, extrayez les fichiers à l'aide de la commande
tar:mkdir -p cluster-toolkit tar -xzf BUNDLE_FILENAME -C cluster-toolkit
Remplacez
BUNDLE_FILENAMEpar le nom du bundle que vous avez téléchargé.Accédez au répertoire
cluster-toolkit:cd cluster-toolkit
Vérifiez l'installation :
./gcluster --version
Après avoir installé le binaire, vous êtes prêt à déployer des clusters pour exécuter vos jobs ou charges de travail.
Créer un fichier de déploiement
Dans le répertoire Cluster Toolkit, créez le fichier YAML de votre déploiement Slurm.
nano ${A4_DEPLOYMENT_FILE_NAME}.yamlCollez le contenu suivant dans le fichier YAML.
--- terraform_backend_defaults: type: gcs configuration: bucket: BUCKET_NAME vars: deployment_name: A4_DEPLOYMENT_FILE_NAME project_id: A4_RESERVATION_PROJECT_ID region: A4_REGION zone: A4_ZONE a4h_reservation_name: A4_RESERVATION_NAME a4h_cluster_size: 1Pour enregistrer et fermez le fichier, appuyez sur Ctrl+O > Entrée > Ctrl+X.
Provisionner le cluster Slurm
Pour provisionner le cluster Slurm, exécutez la commande de déploiement suivante. Cette commande provisionne le cluster Slurm avec le fichier de plan examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml.
Dans Cloud Shell, commencez à créer le cluster.
./gcluster deploy -d ${A4_DEPLOYMENT_FILE_NAME}.yaml examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml --auto-approve
Se connecter au cluster
Une fois le déploiement effectué, connectez-vous à la console Google Cloud pour afficher votre cluster.
Accédez à la page Compute Engine > Instances de VM dans la consoleGoogle Cloud .
Recherchez le nœud de connexion (
a4high-login-001ou similaire).Cliquez sur SSH pour vous connecter.
Effectuer un nettoyage
Pour éviter que les ressources utilisées dans cette démonstration soient facturées sur votre compte Google Cloud , procédez comme suit :
Détruire le cluster Slurm
Nous vous recommandons de nettoyer vos ressources lorsqu'elles ne sont plus nécessaires.
Par défaut, les plans A4 High activent la protection contre la suppression sur l'instance Filestore. Lorsque vous supprimez le cluster Slurm, vous devez désactiver la protection contre la suppression avant d'exécuter la commande de destruction.
Désactiver la protection contre la suppression
Pour désactiver la protection contre la suppression lorsque vous mettez à jour une instance, utilisez une commande semblable à celle-ci :
gcloud filestore instances update INSTANCE_NAME \
--no-deletion-protection
Remplacez INSTANCE_NAME par le nom de l'instance que vous souhaitez modifier. Exemple :my-genomics-instance
Pour obtenir INSTANCE_NAME, vous pouvez exécuter gcloud filestore instances
list. Cette commande liste toutes les instances Filestore de votre projet Google Cloud actuel, y compris leur nom, leur emplacement (zone), leur niveau, leur capacité et leur état.
Après avoir exécuté la commande, recherchez l'instance Filestore qui correspond à la machine a4-highgpu-8g exécutée dans ce tutoriel.
Détruire le cluster Slurm
Avant d'exécuter la commande de destruction, accédez à la racine du répertoire Cluster Toolkit. Par défaut,
DEPLOYMENT_FOLDERse trouve à la racine du répertoire Cluster Toolkit.Détruisez le cluster :
./gcluster destroy DEPLOYMENT_FOLDER --auto-approve
Remplacez
DEPLOYMENT_FOLDERpar le nom du dossier de déploiement. Il est généralement identique àDEPLOYMENT_NAME.
Une fois la destruction terminée, un message semblable à celui-ci s'affiche :
Destroy complete! Resources: xx destroyed.
Supprimer le bucket de stockage
Supprimez le bucket Cloud Storage après vous être assuré que la commande précédente s'est terminée sans erreur :
gcloud storage buckets delete gs://${BUCKET_NAME}
Dépannage
Erreur : Cloud Shell ne peut pas provisionner le cluster, car il ne reste plus d'espace de stockage.
Ce message d'erreur peut s'afficher si vous utilisez souvent Cloud Shell et que vous n'avez plus d'espace de stockage.
Pour résoudre ce problème, consultez Désactiver ou réinitialiser Cloud Shell.
Erreur : le nom du cluster ou du plan existe déjà.
Ce message d'erreur peut s'afficher si vous vous servez d'un projet qui a déjà utilisé les noms de fichiers exacts exploités dans ce tutoriel. Par exemple, si un autre membre de votre organisation a suivi ce tutoriel de bout en bout.
Pour résoudre ce problème, suivez à nouveau le tutoriel, choisissez un nom unique pour le fichier de déploiement, puis exécutez à nouveau la commande de provisionnement du cluster Slurm avec le nouveau fichier de déploiement.
Étapes suivantes
- Tâches Slurm avancées :
- Découvrez comment gérer les événements hôtes :
- Afficher la topologie d'une instance de calcul
- Surveiller les instances de calcul dans votre cluster Slurm
- Signaler un hôte défectueux