View a markdown version of this page

Executando trabalhos de arquitetura mista (X86_64 e ARM64) - AWS Batch

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Executando trabalhos de arquitetura mista (X86_64 e ARM64)

Um único ambiente computacional e fila de tarefas de Instâncias Gerenciadas do Amazon ECS podem executar tarefas X86_64 e ARM64 (baseadas no processador AWS Graviton). Cada trabalho é executado com uma capacidade que corresponde à arquitetura de CPU declarada em sua definição de trabalho. Defina a arquitetura runtimePlatform.cpuArchitecture na definição do trabalho. Você não configura a arquitetura no ambiente computacional.

Para executar trabalhos de arquitetura mista, forneça uma imagem de contêiner que ofereça suporte às duas arquiteturas (um manifesto de imagem de várias arquiteturas) e registre uma definição de tarefa por arquitetura definida como ou. runtimePlatform.cpuArchitecture X86_64 ARM64 Você pode enviar trabalhos para qualquer definição de trabalho para a mesma fila de trabalhos.

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

Em seguida, configure o ambiente computacional de uma das seguintes formas:

  • Omita instanceRequirements para qualificar todos os tipos de instância.

  • Especifique allowedInstanceTypes que abranja todas as arquiteturas usadas por seus trabalhos.

Não especifique tipos de instância

Omita o instanceRequirements campo de managedInstancesProvider.instanceLaunchTemplate (a configuração que restringe os tipos de instância que o ambiente computacional pode usar). Todos os tipos de instância são elegíveis, e o Amazon ECS seleciona a capacidade que corresponde à de cada trabalho. runtimePlatform.cpuArchitecture Uma X86_64 tarefa é iniciada em uma instância x86 e uma ARM64 tarefa é iniciada em uma instância AWS Graviton a partir do mesmo ambiente computacional.

Especifique os tipos de instância que cubram as arquiteturas necessárias

Se você definirinstanceRequirements.allowedInstanceTypes, inclua tipos de instância para cada arquitetura declarada por seus trabalhos. O Amazon ECS deduz a arquitetura a partir dos tipos de instância que você permite. Os tipos de instância permitidos devem atender aos de cada trabalhoruntimePlatform.cpuArchitecture. Por exemplo, para executar as duas arquiteturas, inclua:

  • famílias x86, como e m5 c5

  • AWS Famílias Graviton, como e m7g c7g

O trabalho falhará se nenhum tipo de instância correspondente estiver disponível

Se os tipos de instância permitidos não incluírem nenhum tipo que corresponda à arquitetura declarada de um trabalho, o trabalho falhará pelo seguinte motivo:

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

Por exemplo, se allowedInstanceTypes listar somente famílias x86 e você enviar um ARM64 trabalho, o trabalho falhará com esse erro. Para resolver esse problema, adicione uma família de instâncias AWS Graviton a. allowedInstanceTypes Ou remova instanceRequirements para permitir todos os tipos de instância.