Décrire comment exécuter Slurm avec Azure CycleCloud

Effectué

Une fois cette unité terminée, vous devez être en mesure d’utiliser Slurm sur Azure CycleCloud.

Activation de Slurm sur CycleCloud

Vous pouvez déployer un cluster HPC (High Performance Computing) à l’aide d’Azure CycleCloud en suivant les étapes suivantes :

  1. Connectez-vous à une instance Azure CycleCloud déployée et authentifiez-vous.

  2. Dans la page Créer un cluster, passez en revue les options disponibles, et dans la section Planificateurs, sélectionnez Slurm.

    Capture d’écran montrant la page Créer un cluster de l’application web Azure CycleCloud.

  3. Sous l’onglet À propos de de la page Nouveau cluster Slurm, indiquez un nom pour le cluster Slurm dans la zone de texte Nom du cluster.

  4. Sous l’onglet Paramètres obligatoires de la page Nouveau cluster Slurm, configurez les paramètres suivants dans la zone de texte Nom du cluster :

    • Région : Définit le centre de données qui hébergera les nœuds de cluster.
    • Type de machine virtuelle du planificateur : Vous permet de spécifier la référence SKU de la machine virtuelle qui hébergera le planificateur de travaux.
    • Type de machine virtuelle HPC : Vous permet de spécifier la référence SKU de la machine virtuelle qui hébergera les charges de travail de partition HPC.
    • Type de machine virtuelle HTC : Vous permet de spécifier la référence SKU de la machine virtuelle qui hébergera les charges de travail de partition HTC.
    • Mise à l’échelle automatique: Vous permet d’activer ou de désactiver le démarrage et l’arrêt des instances de machine virtuelle qui hébergent des nœuds de partition lorsque ces nœuds sont requis ou ne le sont plus.
    • Nombre max. de cœurs HPC : Nombre maximal de cœurs de processeur pouvant être alloués aux partitions HPC lors d’une mise à l’échelle automatique.
    • Nombre max. de cœurs HTC : Nombre maximal de cœurs de processeur pouvant être alloués aux partitions HTC lors d’une mise à l’échelle automatique.
    • Nombre max. de machines virtuelles par groupe identique : Nombre maximal de machines virtuelles pouvant être utilisées pour héberger des charges de travail de partition.
    • Utiliser des instances Spot : Détermine si vous souhaitez autoriser l’utilisation d’instances Azure Spot. Bien que les instances Spot soient sensiblement moins coûteuses à exécuter, elles peuvent être supprimées sans avertissement, ce qui peut avoir un impact sur l’exécution des travaux.
    • ID de sous-réseau : Sous-réseau de réseau virtuel Azure qui hébergera des machines virtuelles de nœud de cluster.

    Capture d’écran montrant l’onglet Paramètres obligatoires de la page Nouveau cluster Slurm de l’application web Azure CycleCloud.

  5. Dans la page Network Attached Storage, configurez si vous allez utiliser les options Intégré ou NFS externe pour le montage d’un stockage NAS (Network Attached Storage). Lorsque vous sélectionnez Intégré, le nœud de planificateur est configuré en tant que serveur NFS qui fonctionne comme point de montage pour d’autres nœuds. Si vous spécifiez NFS Externe, vous pouvez fournir les détails d’un dispositif de stockage NAS, comme Azure NetApp Files, HPC Cache, ou une machine virtuelle spécialement configurée exécutant un serveur NFS.

  6. Dans la page Paramètres avancés, vous pouvez spécifier les paramètres suivants :

    • Version de Slurm : Choisissez la version de Slurm à utiliser avec le cluster.
    • Comptabilité des travaux : Spécifiez si vous voulez activer la comptabilité des travaux, ainsi que les paramètres que vous choisirez pour stocker les données comptables.
    • Stratégie d’arrêt : Vous pouvez choisir entre arrêter l’instance ou la désallouer.
    • Informations d’identification : Informations d’identification pour se connecter à l’abonnement Azure associé.
    • Système d’exploitation du planificateur : Choisissez le système d’exploitation Linux utilisé pour héberger le planificateur.
    • Système d’exploitation HPC : Spécifiez le système d’exploitation Linux utilisé pour héberger le planificateur.
    • Initialisation de cluster du planificateur : Vous spécifiez ici les instructions personnalisées à appliquer à la machine virtuelle du planificateur.
    • Initialisation de cluster HTC : Spécifiez les instructions personnalisées à appliquer aux nœuds HTC.
    • Mise en réseau avancée : Cette option vous permet d’activer le proxy de retour, et d’indiquer si le nœud principal est accessible à partir d’adresses Internet et si les nœuds d’exécution sont accessibles à partir d’Internet.

    Capture d’écran montrant l’onglet Paramètres avancés de la page Nouveau cluster Slurm de l’application web Azure CycleCloud.

  7. La page Cloud-init vous permet de passer des paramètres de configuration personnalisés aux nœuds de machine virtuelle après leur déploiement.

Paramètres de mémoire

CycleCloud définit automatiquement la quantité de mémoire que Slurm peut utiliser à des fins de planification. Étant donné que la quantité de mémoire disponible peut changer légèrement en raison des différentes options du noyau Linux, et que le système d’exploitation et la machine virtuelle peuvent utiliser une petite quantité de mémoire qui serait normalement disponible pour les travaux, CycleCloud réduit automatiquement la quantité de mémoire dans la configuration de Slurm. Par défaut, CycleCloud conserve cinq pour cent de la mémoire disponible signalée dans une machine virtuelle, mais vous pouvez remplacer cette valeur dans le modèle de cluster en définissant slurm.dampen_memory sur le pourcentage de mémoire à conserver. Par exemple, pour conserver 20 pour cent de la mémoire d’une machine virtuelle, utilisez :

slurm.dampen_memory=20

Configuration de partitions Slurm

Le modèle par défaut fourni avec Azure CycleCloud comprend deux partitions (HPC et HTC), et vous pouvez définir des tableaux de nœuds personnalisés qui mappent directement aux partitions Slurm. Par exemple, pour créer une partition GPU, ajoutez la section suivante à votre modèle de cluster :

[[nodearray gpu]]
    MachineType = $GPUMachineType
    ImageName = $GPUImageName
    MaxCoreCount = $MaxGPUExecuteCoreCount
    Interruptible = $GPUUseLowPrio
    AdditionalClusterInitSpecs = $ExecuteClusterInitSpecs

        [[[configuration]]]
        slurm.autoscale = true
        # Set to true if nodes are used for tightly-coupled multi-node jobs
        slurm.hpc = false

        [[[cluster-init cyclecloud/slurm:execute:2.0.1]]]
        [[[network-interface eth0]]]
        AssociatePublicIpAddress = $ExecuteNodesPublic

Modification de clusters Slurm existants

Si vous modifiez et appliquez des changements à un cluster Slurm existant, vous devez regénérer le fichier slurm.conf et mettre à jour les nœuds existants dans le cluster. Pour ce faire, vous pouvez utiliser un script présent sur les clusters Slurm déployés dans Azure CycleCloud à l’aide d’un script spécial nommé cyclecloud_slurm.sh. Le script se trouve dans le répertoire /opt/cycle/slurm sur le nœud du planificateur Slurm. Une fois que vous avez apporté des changements au cluster, exécutez le script suivant en tant que racine avec le paramètre apply_changes. Par exemple, utilisez /opt/cycle/slurm/cyclecloud_slurm.sh apply_changes si vous apportez des changements ayant un impact sur les nœuds qui participent à une partition d’interface de passage de messages (MPI, Message Passing Interface).

Désactivation de la mise à l’échelle automatique pour les nœuds ou les partitions

Vous pouvez désactiver la mise à l’échelle automatique pour un cluster Slurm en cours d’exécution en modifiant directement le fichier slurm.conf. Vous pouvez exclure des nœuds individuels ou des partitions entières de la mise à l’échelle automatique.

Pour exclure un ou plusieurs nœuds de la mise à l’échelle automatique, ajoutez SuspendExcNodes=<listofnodes> au fichier de configuration Slurm. Par exemple, pour exclure les nœuds 1 et 2 de la partition HPC, ajoutez ce qui suit à /sched/slurm.conf, puis redémarrez le service slurmctld :

SuspendExcNodes=hpc-pg0-[1-2]

Pour exclure des partitions, vous modifiez également le fichier /sched/slurm.conf. Par exemple, pour exclure la partition HPC de la mise à l’échelle automatique, ajoutez la ligne suivante à slurm.conf et redémarrez le service slurmctld :

SuspendExcParts=hpc