View a markdown version of this page

Exécution de tâches à architecture mixte (X86_64 et ARM64) - AWS Batch

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.

Exécution de tâches à architecture mixte (X86_64 et ARM64)

Un seul environnement de calcul Amazon ECS Managed Instances et une seule file de tâches peuvent exécuter à la fois X86_64 des tâches ARM64 (basées sur le processeur AWS Graviton). Chaque tâche s'exécute sur une capacité qui correspond à l'architecture du processeur déclarée dans sa définition de tâche. Définissez l'architecture runtimePlatform.cpuArchitecture dans la définition du poste. Vous ne configurez pas l'architecture sur l'environnement informatique.

Pour exécuter des tâches à architecture mixte, fournissez une image de conteneur qui prend en charge les deux architectures (un manifeste d'image multi-architecture) et enregistrez une définition de tâche par architecture définie sur ou. runtimePlatform.cpuArchitecture X86_64 ARM64 Vous pouvez soumettre des tâches pour l'une ou l'autre des définitions de tâches à la même file d'attente de tâches.

"runtimePlatform": { "operatingSystemFamily": "LINUX", "cpuArchitecture": "ARM64" }

Configurez ensuite l'environnement informatique de l'une des manières suivantes :

  • Omettez instanceRequirements de rendre tous les types d'instances éligibles.

  • Spécifiez allowedInstanceTypes qu'ils couvrent toutes les architectures utilisées par vos tâches.

Ne pas spécifier de type d'instance

Omettez le instanceRequirements champ de managedInstancesProvider.instanceLaunchTemplate (le paramètre qui limite les types d'instances que l'environnement de calcul peut utiliser). Tous les types d'instances sont éligibles et Amazon ECS sélectionne la capacité qui correspond à celle de chaque tâcheruntimePlatform.cpuArchitecture. Une X86_64 tâche est lancée sur une instance x86 et une ARM64 tâche est lancée sur une instance AWS Graviton à partir du même environnement de calcul.

Spécifiez les types d'instances qui couvrent les architectures requises

Si vous définissezinstanceRequirements.allowedInstanceTypes, incluez des types d'instance pour chaque architecture déclarée par vos jobs. Amazon ECS déduit l'architecture à partir des types d'instances que vous autorisez. Les types d'instances autorisés doivent satisfaire à ceux de chaque tâcheruntimePlatform.cpuArchitecture. Par exemple, pour exécuter les deux architectures, incluez :

  • les familles x86, telles que et m5 c5

  • AWS Les familles de gravitons, telles que et m7g c7g

La tâche échoue si aucun type d'instance correspondant n'est disponible

Si les types d'instance autorisés n'incluent aucun type correspondant à l'architecture déclarée d'une tâche, celle-ci échoue pour la raison suivante :

ResourceInitializationError: No available instance types were able to satisfy the task and placement constraints.

Par exemple, si vous ne allowedInstanceTypes répertoriez que les familles x86 et que vous soumettez une ARM64 tâche, celle-ci échoue avec cette erreur. Pour résoudre ce problème, ajoutez une famille d'instances AWS Graviton àallowedInstanceTypes. Vous pouvez également supprimer instanceRequirements pour autoriser tous les types d'instances.