AWS Batch répartit la capacité de calcul consacrée aux tâches SageMaker Training entre des parts de quota au sein d’une file compatible. Vous pouvez réserver la capacité inutilisée, la prêter à d’autres parts ou autoriser à la fois le prêt et l’emprunt. Cette configuration s’adresse aux équipes qui partagent une file de tâches et veulent définir des règles d’allocation entre projets.

Ce que les parts de quota répartissent

Les parts de quota sont des files virtuelles rattachées à une file de tâches AWS Batch. Elles organisent la capacité de calcul à l’intérieur d’une file configurée pour SageMaker Training. Elles ne correspondent pas à une augmentation des quotas AWS du compte.

La gestion des quotas est réservée aux files reliées à un environnement de service SAGEMAKER_TRAINING. AWS décrit cette restriction dans la documentation d’AWS Batch.

Choisir une stratégie de partage

Le bon réglage dépend de ce que vous voulez faire de la capacité qu’une part n’utilise pas. RESERVE la garde pour cette part ; LEND permet aux autres parts d’en profiter ; LEND_AND_BORROW permet les deux, avec une limite d’emprunt configurée.

StratégieCapacité inutiliséeLes autres parts peuvent-elles l’utiliser ?Emprunt par cette part
RESERVEReste réservée à la partNonNon
LENDPeut être prêtée aux autres partsOuiNon
LEND_AND_BORROWPeut être prêtée aux autres partsOuiOui, dans la limite configurée

Ces stratégies règlent le partage de capacité entre parts de la même file. La capacité prêtée peut être récupérée si la part qui l’a prêtée en a besoin.

Vérifier les limites avant de concevoir la file

Une file de tâches peut contenir jusqu’à 20 parts de quota. Chaque part doit avoir entre 1 et 5 limites de capacité, exprimées par type d’instance pris en charge par SageMaker Training. La documentation AWS Batch précise ces plafonds.

ÉlémentLimite ou conditionConséquence pour la configuration
Type de fileFile reliée à un environnement SAGEMAKER_TRAININGLa gestion des quotas ne s’applique pas à tous les types de files AWS Batch
Parts par file20 au maximumPrévoir le nombre de projets ou d’équipes à répartir
Limites de capacité par partDe 1 à 5 types d’instanceDéfinir chaque limite avec un type accepté par SageMaker Training
Association de l’environnementUn environnement de service géré par quotas se relie à une seule file gérée par quotasPrévoir un environnement distinct si la conception nécessite une autre file

Relier la politique, l’environnement et la file

Avant de créer les parts, préparez les ressources qui rendent la file compatible. Il faut les autorisations IAM pour créer et gérer les files AWS Batch, les politiques de planification et les environnements de service.

  1. Créez une politique de planification compatible avec les quotas. Elle définit la politique de parts utilisée par la file.
  2. Configurez un environnement de service SAGEMAKER_TRAINING. Indiquez les limites de capacité avec des types d’instance acceptés par SageMaker Training, et non avec NUM_INSTANCES.
  3. Créez la file de tâches et reliez-la à la politique et à l’environnement. Un même environnement de service géré par quotas ne peut être associé qu’à une seule file gérée de cette façon.
  4. Vérifiez l’état de la file. AWS indique qu’elle doit atteindre les états ENABLED et VALID, avec le motif JobQueue Healthy.

Le guide AWS de création des ressources détaille ces associations et ces contrôles.

Anticiper la récupération de capacité et les interruptions

Quand une part a prêté de la capacité et en a besoin à nouveau, AWS Batch peut préempter des tâches qui l’empruntent afin de la récupérer. La préemption consiste à interrompre une tâche pour libérer ses ressources. Le mécanisme de sélection prend en compte le nombre et le type d’instances empruntées, les priorités relatives des tâches et leur durée.

Une option distincte permet aussi la préemption au sein d’une même part : les tâches de priorité supérieure peuvent déplacer celles de priorité inférieure, y compris lorsque ces dernières sont en état SCHEDULED, STARTING ou RUNNING.

Baisser la limite de capacité d’une part peut également rendre ses tâches éligibles à la préemption si leur consommation dépasse la nouvelle limite. Cela peut concerner une part configurée en LEND ou en RESERVE.

Dans un exemple de configuration publié par AWS, trois parts disposent chacune d’une capacité maximale d’une instance ml.g5.xlarge, et l’environnement de service fixe sa capacité maximale à 3. La première part utilise LEND_AND_BORROW, la deuxième LEND et la troisième RESERVE. Cette configuration illustre la répartition des règles ; elle ne garantit pas à elle seule le comportement d’une charge de travail donnée.