

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.

# Fragmentación de tareas para plantillas de trabajo
<a name="build-job-bundle-chunking"></a>

La fragmentación de tareas te permite agrupar varias tareas en una sola unidad de trabajo denominada fragmento. En un trabajo de renderizado, por ejemplo, esto significa que Deadline Cloud puede enviar varios fotogramas juntos en lugar de un fotograma por cada invocación de comando. Esto reduce la sobrecarga que supone iniciar las aplicaciones para cada tarea y acorta el tiempo total de ejecución del trabajo. Para obtener más información, consulte [Ejecutar varios fotogramas a la vez](https://github.com/OpenJobDescription/openjd-specifications/wiki/Job-Intro-03-Creating-a-Job-Template#42-running-multiple-frames-at-a-time) en la wiki de OpenJD.

OpenJD admite extensiones que añaden funciones opcionales a las plantillas de trabajo. La fragmentación de tareas se habilita añadiendo la `TASK_CHUNKING` extensión. Para utilizar la fragmentación, añada la extensión a la plantilla de trabajo y utilice el tipo de parámetro de `CHUNK[INT]` tarea. Envíe los trabajos fragmentados con el mismo `deadline bundle submit` comando. Por ejemplo, la siguiente plantilla de trabajo representa los marcos en bloques de 10:

```
specificationVersion: 'jobtemplate-2023-09'
extensions:
  - TASK_CHUNKING
name: Blender Render with Contiguous Chunking
parameterDefinitions:
  - name: BlenderSceneFile
    type: PATH
    objectType: FILE
    dataFlow: IN
  - name: Frames
    type: STRING
    default: "1-100"
  - name: OutputDir
    type: PATH
    objectType: DIRECTORY
    dataFlow: OUT
    default: "./output"
steps:
  - name: RenderBlender
    parameterSpace:
      taskParameterDefinitions:
        - name: Frame
          type: CHUNK[INT]
          range: "{{Param.Frames}}"
          chunks:
            defaultTaskCount: 10
            rangeConstraint: CONTIGUOUS
    script:
      actions:
        onRun:
          command: bash
          args: ["{{Task.File.Run}}"]
      embeddedFiles:
        - name: Run
          type: TEXT
          data: |
            set -xeuo pipefail
            
            mkdir -p '{{Param.OutputDir}}'
            
            # Parse the chunk range (e.g., "1-10") into start and end frames
            START_FRAME="$(echo '{{Task.Param.Frame}}' | cut -d- -f1)"
            END_FRAME="$(echo '{{Task.Param.Frame}}' | cut -d- -f2)"
            
            blender --background '{{Param.BlenderSceneFile}}' \
                    --render-output '{{Param.OutputDir}}/output_####' \
                    --render-format PNG \
                    --use-extension 1 \
                    -s "$START_FRAME" \
                    -e "$END_FRAME" \
                    --render-anim
```

En este ejemplo, Deadline Cloud divide los 100 fotogramas en fragmentos, por ejemplo `1-10``11-20`, y así sucesivamente. La `{{Task.Param.Frame}}` variable se expande a una expresión de rango como`1-10`. Como `rangeConstraint` está establecida en`CONTIGUOUS`, el rango siempre está en `start-end` formato. El script analiza este rango y pasa los fotogramas inicial y final a Blender usando las `-e` opciones `-s` y con`--render-anim`.

La `chunks` propiedad admite los siguientes campos:
+ `defaultTaskCount`— (Obligatorio) Cuántas tareas se van a combinar en un solo bloque. El valor máximo es 150.
+ `rangeConstraint`— (Obligatorio) Si`CONTIGUOUS`, un fragmento es siempre un rango contiguo, como. `1-10` Si`NONCONTIGUOUS`, un fragmento puede ser un conjunto arbitrario, como. `1,3,7-10`
+ `targetRuntimeSeconds`— (Opcional) El tiempo de ejecución objetivo en segundos para cada fragmento. Deadline Cloud puede ajustar dinámicamente el tamaño de los fragmentos para acercarse a este objetivo una vez que se hayan completado algunos fragmentos.

Para ver más ejemplos de fragmentación de tareas, incluidos ejemplos básicos y de Blender con fragmentos contiguos y no contiguos, consulta los ejemplos de fragmentación de [tareas](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/task_chunking) en el repositorio de muestras de Deadline Cloud en. GitHub

**Requisitos de flota gestionados por el cliente**  
La fragmentación de tareas requiere una versión de agente de trabajo compatible. Si utilizas flotas gestionadas por el cliente, asegúrate de que tus agentes de trabajo estén actualizados antes de enviar los trabajos con fragmentación. Las flotas gestionadas por el servicio siempre utilizan una versión de agente de trabajo compatible.

**¿Descargando los resultados de los trabajos fragmentados**  
Cuando descargas el resultado de una sola tarea de un trabajo fragmentado, Deadline Cloud descarga el resultado de todo el fragmento. Por ejemplo, si los fotogramas del 1 al 10 se procesaron juntos, la descarga del resultado del fotograma 3 incluye todos los fotogramas del 1 al 10. Esta función requiere la `deadline-cloud` versión 0.53.3 o posterior.