Trabajos de matrices - AWS Batch

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Trabajos de matrices

Un trabajo de matriz es un trabajo que comparte parámetros comunes, como la definición del trabajo y la memoriavCPUs. Se ejecuta como un conjunto de trabajos básicos relacionados, pero independientes, que se pueden distribuir en varios hosts y pueden ejecutarse de forma simultánea. Los trabajos de matrices son la manera más eficiente de ejecutar trabajos que ocurren todos en paralelo, como simulaciones Monte Carlo, barridos paramétricos o grandes trabajos de representación.

AWS Batch Los trabajos de matriz se envían igual que los trabajos normales. Sin embargo, es necesario especificar un tamaño de matriz (entre 2 y 10 000) para definir la cantidad de trabajos secundarios que deberían ejecutarse en la matriz. Si envía un trabajo con un tamaño de matriz de 1 000, se ejecuta un solo trabajo que genera 1 000 trabajos secundarios. El trabajo de matriz es una referencia o un puntero para administrar todos los trabajos secundarios. Esto permite enviar grandes cargas de trabajo con una sola consulta. El tiempo de espera especificado en el parámetro attemptDurationSeconds se aplica a cada trabajo secundario. El trabajo de matriz principal no tiene tiempo de espera.

Al enviar un trabajo de matriz, el trabajo de matriz principal recibe un ID de AWS Batch trabajo normal. Cada trabajo secundario tiene el mismo ID base. Cada trabajo secundario tiene el mismo ID de base, pero su índice de matriz se añade al final del ID principal, por ejemplo, example_job_ID:0 para el primer trabajo secundario de la matriz.

El trabajo de matriz principal puede introducir un estado SUBMITTED, PENDING, FAILED o SUCCEEDED. El trabajo de matriz principal se actualiza a PENDING cuando se actualiza cualquier trabajo secundario a RUNNABLE. Para obtener más información acerca de estas dependencias, consulte Dependencias de trabajos.

Durante el tiempo de ejecución, la variable de entorno AWS_BATCH_JOB_ARRAY_INDEX se establece en el número de índice del trabajo de matriz correspondiente del contenedor. Al primer índice de trabajo de matriz se le asigna el número 0, y los trabajos secundarios posteriores se numeran en orden ascendente (por ejemplo, 1, 2, 3, etc.). Puede utilizar este valor de índice para controlar la forma en la que se diferencian los elementos secundarios del trabajo de matriz. Para obtener más información, consulte Tutorial: Uso del índice de trabajo de matriz para controlar la diferenciación de trabajos.

En las dependencias de trabajo de matriz, puede especificar un tipo para la dependencia, como, por ejemplo, SEQUENTIAL o N_TO_N. Puede especificar una dependencia de tipo SEQUENTIAL (sin especificar un ID de trabajo) para que cada trabajo de matriz secundario se complete de forma secuencial, comenzando a partir del índice 0. Por ejemplo, si envía un trabajo de matriz con un tamaño de matriz de 100, y especifica una dependencia de tipo SEQUENTIAL, se generan 100 trabajos secundarios de forma secuencial, cada uno de los cuales debe completarse correctamente para que comience el siguiente. En la ilustración siguiente se muestra Job A, un trabajo de matriz con un tamaño de matriz de 10. Cada trabajo del índice secundario de Job A depende del trabajo secundario anterior. Job A:1 no puede comenzar hasta que termine Job A:0.

Flowchart showing Job-A with sequential child jobs A:0 through A:9, connected by arrows.

También puede especificar una dependencia de tipo N_TO_N con un ID de trabajo para los trabajos de matriz. De esta forma, cada índice secundario de este trabajo debe esperar a que se complete el índice secundario correspondiente de cada dependencia antes de comenzar. En la ilustración siguiente se muestran Job A y Job B, dos trabajos de matrices con un tamaño de matriz de 10 000. Cada trabajo del índice secundario de Job B depende del índice correspondiente de Job A. Job B:1 no puede comenzar hasta que termine Job A:1.

Two array jobs, Job-A and Job-B, with 10,000 indexed tasks each, showing N_TO_N dependency.

Si cancela o termina un trabajo de matriz principal, todos los trabajos secundarios se cancelan o terminan con él. Puede cancelar o finalizar trabajos secundarios individuales (lo que los traslada a un FAILED estado) sin que ello afecte a los demás trabajos secundarios. Sin embargo, si un trabajo de matriz secundaria falla (por sí solo o al cancelar o terminar manualmente el trabajo), el trabajo principal también fallará. En este escenario, el trabajo principal pasa a una etapa en la que FAILED se completan todos los trabajos secundarios.