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.
Une tâche matricielle est une tâche qui partage des paramètres communs, tels que la définition de la tâcheCPUs, v et la mémoire. Il s'exécute comme un ensemble de tâches de base connexes mais distinctes qui peuvent être distribuées sur plusieurs hôtes et peuvent s'exécuter simultanément. Les tâches matricielles constituent le moyen le plus efficace d'exécuter des tâches extrêmement parallèles, telles que des simulations de Monte Carlo, des balayages paramétriques ou des tâches de rendu de grande envergure.
AWS Batch les tâches matricielles sont soumises comme les tâches normales. Cependant, vous spécifiez une taille de tableau (entre 2 et 10 000) pour définir le nombre de tâches enfants devant s'exécuter dans le tableau. Si vous envoyez une tâche avec une taille de tableau 1 000, une seule tâche s'exécute et génère 1 000 tâches enfants. La tâche de tableau est une référence ou un pointeur pour gérer toutes les tâches enfants. Ainsi, vous pouvez soumettre des charges de travail importantes en une seule requête. Le délai spécifié dans le attemptDurationSeconds
paramètre s'applique à chaque tâche enfant. La tâche du tableau parent n'a pas de délai d'expiration.
Lorsque vous soumettez une tâche de matrice, la tâche de matrice parent reçoit un ID de AWS Batch tâche normal. Chaque tâche secondaire possède le même identifiant de base. Toutefois, l'index du tableau pour le travail enfant est ajouté à la fin de l'ID parent, par exemple
pour le premier travail enfant du tableau. example_job_ID
:0
La tâche de matrice parent peut entrer un SUCCEEDED
statut SUBMITTED
PENDING
FAILED
,, ou. Une tâche parent de tableau est mise à jour PENDING
lorsqu'une tâche enfant est mise à jour versRUNNABLE
. Pour plus d'informations sur les interdépendances entre les emplois, consultezDépendances liées aux emplois.
Lors de l'exécution, la variable d'environnement AWS_BATCH_JOB_ARRAY_INDEX
est définie sur le numéro d'index de tableau de la tâche correspondant du conteneur. Le premier index des tâches du tableau est numéroté0
, et les tentatives suivantes sont classées par ordre croissant (par exemple, 1, 2 et 3). Vous pouvez utiliser cette valeur d'index pour contrôler la façon dont les enfants de votre tâche de tableau sont différenciés. Pour de plus amples informations, veuillez consulter Tutoriel : Utiliser l'index des tâches matriciel pour contrôler la différenciation des tâches.
Pour les dépendances de tâches de tableau, vous pouvez spécifier un type pour une dépendance, comme SEQUENTIAL
ou N_TO_N
. Vous pouvez spécifier un type de dépendance SEQUENTIAL
(sans spécifier d'ID de tâche), afin que chaque tâche de tableau enfant se termine de façon séquentielle à partir de l'index 0. Par exemple, si vous envoyez une tâche de tableau dont la taille de tableau est 100, et que vous spécifiez une dépendance de type SEQUENTIAL
, 100 tâches enfants sont générées de façon séquentielle, et la première tâche enfant doit être effectuée avant que la tâche enfant suivante ne commence. Le schéma ci-dessous montre une Tâche A, une tâche de tableau de taille 10. Chaque tâche de l'index enfant de la Tâche A dépend de la tâche enfant précédente. La tâche A :1 ne peut pas commencer tant que la tâche A :0 n'est pas terminée.

Vous pouvez également spécifier une dépendance de type N_TO_N
avec un ID de tâche pour les tâches de tableau. Ainsi, chaque enfant de l'index de cette tâche doive attendre que l'enfant de l'index correspondant de chaque dépendance soit terminé avant de pouvoir commencer. La figure suivante montre le Job A et le Job B, deux tâches matricielles d'une taille de tableau de 10 000 chacune. Chaque tâche de l'index enfant de la Tâche B dépend de l'index correspondant de la Tâche A. Tâche B:1 ne peut pas démarrer tant que Tâche A:1 n'est pas terminée.

Si vous annulez ou mettez fin à une tâche de la baie parent, toutes les tâches enfants sont annulées ou terminées en même temps. Vous pouvez annuler ou mettre fin à des emplois individuels pour enfants (ce qui les fait passer à un FAILED
statut) sans affecter les autres emplois pour enfants. Toutefois, si une tâche de matrice enfant échoue (seule ou en annulant ou en mettant fin manuellement à la tâche), la tâche parent échoue également. Dans ce scénario, le travail du parent passe à celui FAILED
où tous les emplois des enfants sont terminés.