Exercice - Ajouter un groupe de nœuds personnalisé à un cluster HPC
Attention
Ce contenu fait référence à CentOS, une distribution Linux ayant atteint l’état EOL (fin du service). Faites le point sur votre utilisation et organisez-vous en conséquence. Pour plus d’informations, consultez les conseils d’aide relatifs à la fin de vie de CentOS.
Un groupe de nœuds est une collection de nœuds identiquement configurés d’un cluster Azure CycleCloud. Leur but est de s’adapter à la mise à l’échelle horizontale des ressources de calcul du cluster au fil des variations du nombre de travaux en file d’attente. Chaque groupe de nœuds a un nom, un ensemble d’attributs qui s’appliquent à chacun de ses nœuds et des attributs facultatifs qui décrivent comment le groupe de nœuds doit être mis à l’échelle.
Le planificateur de travaux Slurm partitionne les nœuds de groupe en ensembles logiques et qui se chevauchent potentiellement. Leur but est d’optimiser le traitement des travaux en tenant compte de leurs contraintes spécifiques, telles que les limites de ressources ou de temps. Le planificateur alloue les travaux aux nœuds d’une partition jusqu’à épuisement de leurs ressources ou jusqu’à ce que tous les travaux soient traités.
Vous voulez modifier votre cluster géré par Azure CycleCloud récemment déployé pour tenir compte des besoins en ressources spécifiques aux travaux. Pour atteindre cet objectif, vous décidez d’appliquer des modifications supplémentaires au modèle sous-jacent et de valider votre approche.
Dans cet exercice, vous allez effectuer les tâches suivantes :
- Tâche 1 : Ajouter une définition de groupe de nœuds au modèle Azure CycleCloud
- Tâche 2 : Ajouter des paramètres d’interface graphique au modèle Azure CycleCloud
- Tâche 3 : Exporter les propriétés du cluster Azure CycleCloud
- Tâche 4 : Modifier le fichier de propriétés pour y inclure les nouveaux paramètres
- Tâche 5 : Importer le modèle et le fichier de paramètres modifiés dans le cluster existant
Remarque
Avant de commencer cet exercice, vous devez avoir terminé avec succès l’exercice précédent.
Tâche 1 : Ajouter une définition de groupe de nœuds au modèle Azure CycleCloud
Vous allez commencer par ajouter une définition d’un groupe de nœuds dans le modèle Slurm que vous avez personnalisé dans l’exercice précédent. L’exemple de modèle comprend deux partitions nommées hpc et htc. Vous allez créer une autre partition et le groupe de nœuds correspondant pour les travaux qui tirent parti des fonctionnalités CUDA (Compute Unified Device Architecture).
Accédez au portail Azure. Quand vous y êtes invité, authentifiez-vous avec un compte Microsoft ou un compte Microsoft Entra associé au rôle Contributeur ou Propriétaire dans l’abonnement Azure que vous utilisez dans ce module.
Dans le portail Azure, ouvrez Cloud Shell en sélectionnant son icône dans la barre d’outils en regard de la zone de texte Rechercher et vérifiez que vous exécutez une session Bash.
Exécutez la commande suivante dans Cloud Shell pour définir le répertoire de travail sur celui qui héberge le dépôt GitHub que vous avez extrait au cours de l’exercice précédent :
cd ~/cyclecloud-slurm/templates
Exécutez la commande suivante pour ouvrir le modèle téléchargé dans l’éditeur Nano :
nano slurm.txt
Dans l’interface de l’éditeur Nano, faites défiler jusqu’à la section
[parameters About]
et ajoutez le contenu suivant juste avant celle-ci :[[nodearray cuda]] MachineType = $CUDAMachineType ImageName = $CUDAImageName MaxCoreCount = $MaxCUDAExecuteCoreCount AdditionalClusterInitSpecs = $CUDAClusterInitSpecs [[[configuration]]] slurm.autoscale = true slurm.hpc = true [[[cluster-init cyclecloud/slurm:execute]]] [[[network-interface eth0]]] AssociatePublicIpAddress = $ExecuteNodesPublic
Remarque
Si vous utilisez un ordinateur Windows, vous pouvez coller le contenu du Presse-papiers en utilisant la combinaison de touches Maj + Inser.
Remarque
Vos modifications définissent un groupe de nœuds supplémentaire.
Tâche 2 : Ajouter des paramètres d’interface graphique au modèle Azure CycleCloud
Pour pouvoir modifier les valeurs des paramètres du modèle avec l’interface graphique d’Azure CycleCloud, vous devez appliquer davantage de modifications au modèle.
Dans l’interface de l’éditeur Nano, faites défiler jusqu’à la section
[[parameters Auto-Scaling]]
et ajoutez le contenu suivant juste avant celle-ci :[[[parameter CUDAMachineType]]] Label = CUDA VM Type Description = The VM type for CUDA execute nodes ParameterType = Cloud.MachineType DefaultValue = Standard_NC24
Faites défiler jusqu’à la section
[[[parameter HPCMaxScalesetSize]]]
et ajoutez le contenu suivant juste avant celle-ci :[[[parameter MaxCUDAExecuteCoreCount]]] Label = Max CUDA Cores Description = The total number of CUDA execute cores to start DefaultValue = 100 Config.Plugin = pico.form.NumberTextBox Config.MinValue = 0 Config.IntegerOnly = true
Faites défiler jusqu’à la section
[[[parameter SchedulerClusterInitSpecs]]]
et ajoutez le contenu suivant juste avant celle-ci :[[[parameter CUDAImageName]]] Label = CUDA OS ParameterType = Cloud.Image Config.OS = linux DefaultValue = cycle.image.centos7 Config.Filter := Package in {"cycle.image.centos7", "cycle.image.ubuntu18"}
Faites défiler jusqu’à la section
[[parameters Advanced Networking]]
et ajoutez le contenu suivant juste avant celle-ci :[[[parameter CUDAClusterInitSpecs]]] Label = CUDA Cluster-Init DefaultValue = =undefined Description = Cluster init specs to apply to CUDA execute nodes ParameterType = Cloud.ClusterInitSpecs
Sélectionnez la combinaison de touches Ctrl + O, appuyez sur la touche Entrée, puis sélectionnez la combinaison de touches Ctrl + X pour enregistrer les modifications que vous avez apportées et fermer le fichier.
Tâche 3 : Exporter les propriétés du cluster Azure CycleCloud
Avant d’appliquer au cluster cible les modifications de configuration que vous avez apportées au modèle Azure CycleCloud, vous devez d’abord exporter les propriétés du cluster.
Exécutez la commande suivante dans Cloud Shell pour répertorier les clusters existants :
cyclecloud show_cluster
Remarque
Vérifiez que la sortie comprend l’entrée contoso-custom-slurm-lab-cluster.
Exécutez la commande suivante pour exporter dans le fichier params.json la liste des paramètres du cluster contoso-custom-slurm-lab-cluster et leurs valeurs :
cyclecloud export_parameters contoso-custom-slurm-lab-cluster > ~/params.json
Exécutez la commande suivante pour passer en revue la liste des paramètres exportés et leurs valeurs :
cat ~/params.json
Tâche 4 : Modifier le fichier de propriétés pour y inclure les nouveaux paramètres
Les modifications que vous avez appliquées au modèle Azure CycleCloud incluaient des valeurs par défaut pour tous les nouveaux paramètres introduits, mais il peut être nécessaire de les modifier pour tenir compte de vos besoins spécifiques. Dans cette tâche, vous allez définir les valeurs des paramètres CUDAMachineType et MaxCUDAExecuteCoreCount.
Exécutez la commande suivante dans Cloud Shell pour ouvrir le fichier des paramètres téléchargé dans l’éditeur Nano :
nano ~/params.json
Dans l’éditeur Nano, faites défiler jusqu’à la fin du fichier et ajoutez le contenu suivant en commençant par une nouvelle ligne avant les accolades fermantes (}) :
"CUDAMachineType" : "Standard_NC6", "MaxCUDAExecuteCoreCount" : 60
Ajoutez une virgule à la fin de la ligne précédant celle que vous avez ajoutée à l’étape précédente :
"CUDAMachineType" : "Standard_NC6"
Sélectionnez la combinaison de touches Ctrl + O, appuyez sur la touche Entrée, puis sélectionnez la combinaison de touches Ctrl + X pour enregistrer les modifications que vous avez apportées et fermer le fichier.
Tâche 5 : Importer le modèle et le fichier de paramètres modifiés dans le cluster existant
Pour conclure cet exercice, vous allez importer le modèle modifié et son fichier de paramètres dans le cluster existant, ce qui va remplacer sa configuration actuelle.
Exécutez la commande suivante dans Cloud Shell pour importer le modèle modifié et son fichier de paramètres dans le cluster existant :
cyclecloud import_cluster contoso-custom-slurm-lab-cluster --file ~/cyclecloud-slurm/templates/slurm.txt -p ~/params.json -c Slurm --force
Remarque
Vous devez spécifier le nom du cluster cible et l’indicateur
--force
pour remplacer la configuration du cluster existant.Sur votre ordinateur, ouvrez une autre fenêtre de navigateur et accédez à l’URL https://<adresse_IP>. Si vous y êtes invité, confirmez que vous voulez continuer.
Si vous êtes invité à vous authentifier, connectez-vous en fournissant les informations d’identification du compte d’utilisateur de l’application Azure CycleCloud que vous avez utilisé pour configurer l’interface CLI d’Azure CycleCloud.
Dans l’interface graphique d’Azure CycleCloud, accédez à la page Clusters. Dans la liste des clusters, sélectionnez l’entrée contoso-custom-slurm-lab-cluster, puis sélectionnez Modifier.
Dans la fenêtre contextuelle Modifier contoso-custom-slurm-lab-cluster, dans la page À propos de, sélectionnez Suivant.
Dans la page Paramètres requis, vérifiez la présence de l’entrée Type de machine virtuelle CUDA définie sur la valeur Standard_NC6 et les options de mise à l’échelle automatique correspondantes :
Félicitations ! Vous avez effectué avec succès le second exercice de ce module. Dans cet exercice, vous avez personnalisé davantage votre cluster Azure CycleCloud en utilisant un modèle modifié incluant la définition d’un nouveau groupe de nœuds avec la partition correspondante. Pour atteindre cet objectif, après avoir modifié le modèle, vous avez exporté et modifié le fichier de paramètres du cluster et vous l’avez importé dans le cluster en même temps que le modèle modifié.
Remarque
Ne supprimez pas les ressources que vous avez déployées et configurées dans cet exercice si vous envisagez d’exécuter l’exercice suivant. Vous avez besoin de ces ressources pour effectuer l’exercice suivant.