Politiques
La gouvernance des tâches Amazon SageMaker HyperPod simplifie l’allocation des ressources de votre cluster Amazon EKS et la définition des priorités des tâches. La section suivante fournit des informations sur les politiques de cluster HyperPod EKS. Pour obtenir des informations sur la configuration de la gouvernance des tâches, consultez Configuration de la gouvernance des tâches.
Les politiques sont divisées en Définition des priorités des ressources de calcul et Allocation des ressources de calcul. Les concepts de politique ci-dessous seront organisés dans le contexte de ces politiques.
La définition des priorités des ressources de calcul, ou politique de cluster, détermine la manière dont les ressources de calcul inactives sont empruntées et la manière dont les tâches sont priorisées par les équipes.
-
L’allocation des ressources de calcul inactives définit la manière dont les ressources de calcul inactives sont allouées entre les équipes. C’est-à-dire comment les ressources de calcul inactives peuvent être empruntées aux équipes. Lorsque vous choisissez une allocation de ressources de calcul inactives, vous pouvez choisir entre :
-
Premier arrivé, premier servi : lorsque cette option est appliquée, les équipes ne sont pas priorisées les unes par rapport aux autres et chaque tâche entrante a des chances égales d’obtenir des ressources au-delà du quota. Les tâches sont priorisées dans l’ordre de leur soumission. Cela signifie qu’un utilisateur peut être en mesure d’utiliser 100 % des ressources de calcul inactives s’il en fait la demande en premier.
-
Partage équitable : lorsque cette option est appliquée, les équipes empruntent les ressources de calcul inactives en fonction du Partage équitable de la pondération qui leur a été attribué. Ces pondérations sont définies dans Allocation de calcul. Pour plus d’informations sur la façon d’utiliser cela, consultez Exemples de partage de ressources de calcul inactives.
-
-
La priorisation des tâches définit la manière dont les tâches sont mises en file d’attente à mesure que le calcul devient disponible. Lorsque vous choisissez une priorisation des tâches, vous pouvez choisir entre :
-
Premier arrivé, premier servi : lorsqu’elles sont appliquées, les tâches sont mises en file d’attente dans l’ordre dans lequel elles sont demandées.
-
Classement des tâches : lorsqu’elles sont appliquées, les tâches sont mises en file d’attente dans l’ordre défini par leur ordre de priorité. Si cette option est choisie, vous devez ajouter des classes de priorité aux pondérations pour définir leur ordre de priorité. Les tâches de même classe de priorité seront exécutées selon le principe du premier arrivé, premier servi. Lorsque cette option est activée dans Allocation de calcul, les tâches sont préemptées des tâches les moins prioritaires par des tâches plus prioritaires au sein de l’équipe.
Lorsque les scientifiques des données soumettent des tâches au cluster, ils utilisent le nom de la classe de priorité dans le fichier YAML. La classe de priorité est au format
. Pour obtenir un exemple, consultez Soumission d’une tâche à la file d’attente et à l’espace de noms gérés par SageMaker AI.priority-class-name-priority -
Classes de priorité : ces classes établissent une priorité relative pour les tâches lors de l’emprunt d’une capacité. Lorsqu’une tâche est exécutée avec un quota emprunté, elle peut être préemptée par une autre tâche plus prioritaire, si aucune capacité supplémentaire n’est disponible pour la tâche entrante. Si la préemption est activée dans Allocation de calcul, une tâche plus prioritaire peut également préempter des tâches au sein de sa propre équipe.
-
L’allocation de calcul, ou le quota de calcul, définit l’allocation de calcul d’une équipe et le poids (ou niveau de priorité) attribué à une équipe pour une allocation de ressources de calcul inactives équitable.
-
Nom de l’équipe : le nom de l’équipe. Un espace de noms correspondant sera créé, du type
hyperpod-ns-.team-name -
Membres : membres de l’espace de noms de l’équipe. Vous devrez configurer un contrôle d’accès basé sur les rôles (RBAC) Kubernetes pour les utilisateurs scientifiques des données que vous souhaitez intégrer à cette équipe, afin d’exécuter des tâches sur des clusters HyperPod orchestrés avec Amazon EKS. Pour configurer un RBAC Kubernetes, utilisez les instructions fournies dans create team role
. -
Partage équitable de la pondération : il s’agit du niveau de priorité attribué à l’équipe lorsque l’option Partage équitable est appliquée pour Allocation de calcul inactif. La priorité la plus élevée a une pondération de 100 et la priorité la plus basse une pondération de 0. Une pondération plus élevée permet à une équipe d’accéder plus tôt aux ressources inutilisées dans le cadre d’une capacité partagée. Une pondération nulle correspond à la priorité la plus basse, ce qui signifie que cette équipe sera toujours désavantagée par rapport aux autres équipes.
La pondération équitable donne un avantage comparatif à cette équipe lorsqu’elle est en concurrence avec d’autres pour les ressources disponibles. L’admission donne la priorité aux tâches planifiées par les équipes ayant les pondérations les plus élevées et l’emprunt le plus faible. Par exemple, si l’équipe A a une pondération de 10 et l’équipe B une pondération de 5, l’équipe A aura la priorité pour accéder aux ressources inutilisées (ses tâches seront planifiées avant celles de l’équipe B).
-
Préemption des tâches : le calcul est pris en charge par une tâche en fonction de sa priorité. Par défaut, l’équipe qui prête des ressources de calcul inactives préemptera les tâches des autres équipes.
-
Prêt et emprunt : comment l’équipe prête ses ressources de calcul inactives et si l’équipe peut emprunter à d’autres équipes.
-
Limite d’emprunt : limite de ressources de calcul inactives qu’une équipe est autorisée à emprunter. Une équipe peut emprunter jusqu’à 500 % des ressources de calcul allouées. La valeur que vous indiquez ici est interprétée comme un pourcentage. Par exemple, une valeur de 500 sera interprétée comme 500 %.
-
Pour en savoir plus sur la manière dont ces concepts sont utilisés, tels que les classes de priorité et les espaces de noms, consultez Exemples de commandes AWS CLI de gouvernance des tâches HyperPod.
Exemples de partage de ressources de calcul inactives
Le quota réservé total ne doit pas dépasser la capacité disponible du cluster pour cette ressource, afin de garantir une gestion appropriée des quotas. Par exemple, si un cluster comprend 20 instances ml.c5.2xlarge, le quota cumulé attribué aux équipes doit rester inférieur à 20.
Si les politiques d’allocation de calcul pour les équipes autorisent l’action Prêter et emprunter ou Prêter, la capacité inutilisée est partagée entre ces équipes. Par exemple, l’option Prêter et emprunter est activée pour les équipes A et B. L’équipe A a un quota de 6 mais n’en utilise que 2 pour ses tâches, et l’équipe B a un quota de 5 et en utilise 4 pour ses tâches. Une tâche soumise à l’équipe B nécessite 4 ressources. 3 seront empruntées à l’équipe A.
Si la politique d’allocation de calcul d’une équipe est définie sur Ne pas prêter, l’équipe ne sera pas en mesure d’emprunter de capacité supplémentaire au-delà de ses propres allocations.
Pour maintenir un pool ou un ensemble de ressources que toutes les équipes peuvent emprunter, vous pouvez configurer une équipe dédiée, dotée de ressources qui comblent l’écart entre les allocations des autres équipes et la capacité totale du cluster. Assurez-vous que cette allocation de ressources cumulée inclut les types d’instances appropriés et ne dépasse pas la capacité totale du cluster. Pour garantir le partage de ces ressources entre les équipes, autorisez les équipes participantes à définir leurs allocations de calcul sur Prêter et emprunter ou sur Prêter pour ce groupe de ressources commun. Chaque fois que de nouvelles équipes sont introduites, que les allocations de quotas sont modifiées ou que la capacité du cluster est modifiée, revoyez les allocations de quotas de toutes les équipes et assurez-vous que le quota cumulé reste égal ou inférieur à la capacité du cluster.