View a markdown version of this page

Configuration des paramètres GRES personnalisés dans AWS PIÈCES - AWS PIÈCES

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration des paramètres GRES personnalisés dans AWS PIÈCES

Slurm permet de gres.conf gérer les ressources génériques (GRES), telles que les GPU, les périphériques de Multi-Process service (MPS) et les périphériques Multi-Instance GPU (MIG), sur les nœuds de calcul. AWS PCS vous permet de personnaliser gres.conf via la gresCustomSettings propriété de slurmConfiguration lors de la création ou de la mise à jour d'un groupe de nœuds de calcul.

Contrairement aux autres paramètres personnalisés, qui sont une liste plate de paires de paramètres et de valeurs, gresCustomSettings il s'agit d'une liste d'enregistrements. Chaque enregistrement est un ensemble d'gres.confattributs qui décrit un périphérique ou une ressource GRES. Par exemple, l'enregistrement Name=gpu Type=a100 File=/dev/nvidia[0-7] déclare huit GPU A100.

Dans Slurm, un gres.conf enregistrement s'applique à chaque nœud du cluster, sauf s'il spécifie un NodeName= préfixe. AWS PCS ajoute toujours le NodeName= préfixe pour le groupe de nœuds de calcul, vous ne le spécifiez donc pas, et chaque enregistrement que vous fournissez s'applique uniquement à ce groupe de nœuds de calcul. AWS PCS ne prend pas en charge les enregistrements à l'échelle du clustergres.conf.

Configuration des paramètres de gres.conf

gres.confles paramètres personnalisés peuvent être configurés via la AWS console, l'interface de ligne de commande ou les kits SDK lors de la création d'un groupe de nœuds de calcul ou modifiés ultérieurement par le biais d'opérations de mise à jour.

Console de gestion AWS

Accédez à Paramètres de planification supplémentaires sur la page de création ou de modification d'une ressource de groupe de nœuds de calcul. Entrez un gres.conf enregistrement par ligne, sous gres.conf forme native (par exemple,Name=gpu Type=a100 File=/dev/nvidia[0-7]).

AWS CLI

Pour la gestion programmatique des gres.conf paramètres, utilisez le gresCustomSettings champ dans les opérations de création ou de mise à jour de groupes de nœuds de calcul. Chaque élément de la liste est un gres.conf enregistrement.

Exemple— Déclarer des périphériques GPU sur un groupe de nœuds de calcul
aws pcs update-compute-node-group \ --cluster-identifier my-cluster \ --compute-node-group-identifier my-cng-1 \ --slurm-configuration \ 'gresCustomSettings=[{Name=gpu,Type=a100,File=/dev/nvidia[0-7]}]'

Paramètres gres.conf pris en charge pour les groupes de nœuds de calcul

Les gres.conf attributs suivants sont pris en charge dans chaque enregistrement au niveau du groupe de nœuds de calcul :

Pour connaître la signification et les valeurs acceptées de chaque attribut, consultez la documentation de Slurm https://slurm.schedmd.com/gres.conf.html gres.conf. AWS PCS valide vos enregistrements selon les mêmes règles que celles appliquées par Slurm. En particulier, chaque enregistrement doit déclarer une valeur active Name ou une AutoDetect valeur active, et un enregistrement GPU (Name=gpu) doit spécifier File ou à MultipleFiles moins qu'une AutoDetect valeur active ne découvre les périphériques.

Une AutoDetect valeur active est une valeur qui active la détection, telle que nvml oufull. AutoDetect=offdésactive la détection, il ne s'agit donc pas d'une valeur active et ne peut pas être isolée dans un enregistrement.

Comment ? AWS PCS applique vos enregistrements gres.conf

Une configuration GRES apparaît à deux endroits dans la configuration Slurm, et AWS PCS écrit les deux :

  • Les gres.conf enregistrements que vous fournissez gresCustomSettings décrivent les périphériques qui existent sur le nœud.

  • Le Gres paramètre dans slurm.conf déclare ce que le planificateur peut allouer, dans le formulairename[:type]:count. Vous le fournissez en tant que paramètre Slurm personnalisé pour le groupe de nœuds de calcul, dans. slurmCustomSettings Pour plus d’informations, consultez Paramètres Slurm personnalisés pour AWS Groupes de nœuds de calcul PCS.

AWS PCS restitue vos enregistrements gres.conf et les réconcilie avec la configuration GRES qu'il gère :

  • Tout enregistrement GPU que vous déclarez remplace l'enregistrement GPU par défaut généré par AWS PCS pour le groupe de nœuds de calcul. Un enregistrement GPU est un enregistrement qui spécifie Name=gpu ou un AutoDetect attribut.

  • Les enregistrements d'autres ressources, tels que mpsshard, ou le nom de votre propre ressource, sont ajoutés à côté des valeurs par défaut du AWS PCS.

  • AWS PCS déduit le GresTypes réglage et les gres/* entrées du AccountingStorageTRES réglage à slurm.conf partir du Gres réglage.

Sur les versions 26.05 et ultérieures de Slurm, AWS PCS définit AutoDetect=full par défaut les groupes de nœuds de calcul GPU lorsque la disposition des sockets du nœud est connue, soit parce que vous avez défini Sockets le groupe de nœuds de calcul, soit parce que AWS PCS a détecté automatiquement la topologie du processeur. slurmCustomSettings Lorsque la configuration du socket n'est pas disponible, AWS PCS émet son enregistrement GPU sans le AutoDetect remplacer.

Contraintes entre gres.conf et le paramètre Gres

Slurm a besoin des deux côtés de la configuration GRES pour planifier une ressource, et une ressource qui n'apparaît que dans l'un d'entre eux ne fonctionne pas. Une entrée dans le Gres paramètre slurm.conf sans aucun gres.conf enregistrement fait que le nœud signale moins de ressources que celles configurées, et le nœud se vide. Un enregistrement sans Gres entrée laisse le périphérique présent sur le nœud mais ne peut pas être programmé.

AWS PCS valide les deux l'une par rapport à l'autre lorsque vous créez ou mettez à jour un groupe de nœuds de calcul, et rejette la demande dans les cas suivants :

  • Une slurm.conf Gres entrée nomme une ressource qu'aucun gres.conf enregistrement ne déclare. Cela inclut gpu : une gpu entrée nécessite un enregistrement GPUgresCustomSettings, même si le compte est0.

  • Une slurm.conf Gres entrée déclare un nombre de ressources supérieur à celui déclaré par les gres.conf enregistrements. Un nombre inférieur est autorisé, jusqu'à 0 : les gres.conf enregistrements décrivent les périphériques présents sur le nœud, tout en indiquant le nombre Gres d'entre eux que le planificateur peut allouer.

  • Une slurm.conf Gres entrée spécifie un type de GPU dans lequel aucun enregistrement de GPU ne gres.conf déclare.

Les deux dernières vérifications dépendent de ce que vos dossiers déclarent. AWS PCS ne peut pas compter les appareils découverts par Slurm au démarrage du nœud. Par conséquent, un enregistrement qui active uniquement AutoDetect accepte n'importe quel gpu nombre et saisit l'Gresentrée. C'est ainsi que les profils MIG passent la validation. AWS PCS ignore également le contrôle de comptage pour les GRES partagés (mpsetshard), et ignore le contrôle de type lorsqu'un enregistrement GPU déclare non. Type

AWS PCS accepte un enregistrement qui n'a aucune Gres entrée correspondante. La ressource existe sur le nœud, mais les jobs ne peuvent pas la demander. Ajoutez l'Gresentrée pour la rendre planifiable.

Important

AWS PCS valide la syntaxe de vos enregistrements et leur cohérence avec le Gres paramètre. Il ne les valide pas par rapport au matériel. Un enregistrement dont File la Cores Links disposition ne correspond pas aux périphériques du nœud démarré entraîne la vidange du nœud. Il en va de même pour le MIG : les profils que vous déclarez dans Gres doivent correspondre aux profils configurés sur le nœud. Pour plus d'informations sur le diagnostic d'un nœud vidé, consultezRésoudre les problèmes liés aux enregistrements de nœuds non valides (INVALID_REG) dans AWS PIÈCES.