Trabalhos de matriz - 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á.

Trabalhos de matriz

Um trabalho de matriz é um trabalho que compartilha parâmetros comuns, como a definição do trabalho, vCPUs e a memória. Ele é executado como coleções de tópicos de trabalhos básicos porém separados, que podem ser distribuídos entre vários hosts e executados simultaneamente. Os trabalhos de matriz são a maneira mais eficiente de executar trabalhos extremamente em paralelo, como simulações de Monte Carlo, varreduras paramétricas ou trabalhos grandes de renderização.

AWS Batch os trabalhos de matriz são enviados da mesma forma que os trabalhos normais. No entanto, você especifica o tamanho da matriz (entre 2 e 10.000) para definir quantos trabalhos filho devem ser executados no campo da matriz. Se você enviar um trabalho com tamanho da matriz 1.000, haverá uma única execução de trabalho gerando 1.000 trabalhos filho. O trabalho de matriz é uma referência ou ponteiro para gerenciar todos os trabalhos filho. Você pode enviar grandes workloads com uma única consulta. O tempo limite especificado no campo do parâmetro attemptDurationSeconds é aplicado em cada trabalho filho. O trabalho pai da matriz não tem um tempo limite.

Quando você envia um trabalho de matriz, o trabalho de matriz principal recebe uma ID de AWS Batch trabalho normal. Cada trabalho filho tem a mesma ID base. No entanto, o índice da matriz do trabalho filho é anexado até o fim da ID pai, como example_job_ID:0 para o primeiro trabalho filho da matriz.

O trabalho de matriz pai pode inserir um status SUBMITTED, PENDING, FAILED ou SUCCEEDED. Um trabalho de matriz pai é atualizado para PENDING quando qualquer trabalho filho é atualizado para RUNNABLE. Para obter mais informações sobre dependências do trabalho, consulte Dependências do trabalho.

Durante o tempo de execução, a variável de ambiente AWS_BATCH_JOB_ARRAY_INDEX é definida como o número do índice da matriz do trabalho correspondente do contêiner. O primeiro índice do trabalho de matriz é numerado com 0 e as tentativas subsequentes são numeradas em ordem crescente (por exemplo 1, 2 e 3). Você pode utilizar esse valor de índice para controlar como os filhos do trabalho de matriz serão diferenciados. Para ter mais informações, consulte Tutorial: usando o índice de trabalho de matriz para controle de diferenciação de trabalhos.

Para dependências do trabalhos de matriz, você pode especificar um tipo para cada dependência, como SEQUENTIAL ou N_TO_N. Você pode especificar uma dependência do tipo SEQUENTIAL (sem especificar ID de trabalho), de forma que cada trabalho de matriz filho seja concluído sequencialmente, começando com o índice 0. Por exemplo, se você enviar um trabalho de matriz com o tamanho da matriz 100 e especificar uma dependência do tipo SEQUENTIAL, 100 trabalhos filho serão gerados sequencialmente. O primeiro trabalho filho precisará ter êxito antes que o próximo trabalho filho comece. A figura abaixo mostra o trabalho A, um trabalho de matriz com um tamanho da matriz somando 10. Cada trabalho no índice filho do trabalho A depende do trabalho filho anterior. O trabalho A:1 não pode iniciar até que o trabalho A:0 termine.

Você também pode especificar uma dependência do tipo N_TO_N com ID do trabalho para trabalhos de matriz. Deste modo, cada índice filho dessa tarefa precisa aguardar, para que o índice filho correspondente de cada dependência seja concluído antes de começar. A figura a seguir mostra o trabalho A e o trabalho B, dois trabalhos de matriz de tamanho 10.000 cada. Cada trabalho no índice filho do trabalho B depende do índice correspondente no trabalho A. O trabalho B:1 não pode iniciar até que o trabalho A:1 termine.

Se você cancelar ou encerrar um trabalho de matriz pai, todos os trabalhos filho serão cancelados ou encerrados com ele. Você pode cancelar ou encerrar trabalhos filho individuais (movendo-os para o status FAILED) sem afetar os outros trabalhos filho. No entanto, se um trabalho de matriz filho falhar (sozinho, por ter sido cancelado ou por encerramento manual), o trabalho pai também falhará.