Fragmentación de tareas para plantillas de trabajo - Nube de plazos

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

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 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-1011-20, y así sucesivamente. La {{Task.Param.Frame}} variable se expande a una expresión de rango como1-10. Como rangeConstraint está establecida enCONTIGUOUS, 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) SiCONTIGUOUS, un fragmento es siempre un rango contiguo, como. 1-10 SiNONCONTIGUOUS, 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 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.