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.
Agregue la fragmentación de tareas a una plantilla de trabajo
El procedimiento siguiente convierte una plantilla de trabajo que representa un fotograma por tarea en una que renderiza fragmentos de fotogramas. Para obtener más información sobre la fragmentación y cómo elegir un tamaño de fragmento, consulte. Fragmentación de tareas para plantillas de trabajo
Antes de comenzar, necesitará lo siguiente:
-
Un paquete de tareas con una plantilla de tareas que define un parámetro de tarea de marco. Para obtener más información, consulte Elementos de plantilla de trabajo para paquetes de trabajos.
-
Una cola asociada a una flota que admite la fragmentación. Service-managed las flotas siempre utilizan un agente de trabajo compatible. Customer-managed las flotas requieren la versión 0.28.21 del agente de trabajo o una versión posterior para los trabajadores.
Para agregar la fragmentación de tareas a una plantilla de trabajo
-
Añade la
TASK_CHUNKINGextensión al principio deltemplate.yamlarchivo:specificationVersion: 'jobtemplate-2023-09' extensions: - TASK_CHUNKINGSi omite este paso, se producirá un error al crear el trabajo
The CHUNK[INT] task parameter requires the TASK_CHUNKING extension. -
En los pasos
parameterSpace, cambie el tipo de parámetro de la tarea del marco deINTaCHUNK[INT]y añada lachunkspropiedad:taskParameterDefinitions: - name: Frame type: CHUNK[INT] range: "{{Param.Frames}}" chunks: defaultTaskCount: 10 rangeConstraint: CONTIGUOUSPara ver todos los campos disponibles, consulteReferencia del parámetro de tarea CHUNK [INT].
-
Actualice el guion del paso para que acepte un rango de fotogramas en lugar de un único fotograma. Con
rangeConstraint: CONTIGUOUS, la{{Task.Param.Frame}}variable siempre se expande a un rango destart-endformato, por lo que el script puede dividirla con elcutcomando:START_FRAME="$(echo '{{Task.Param.Frame}}' | cut -d- -f1)" END_FRAME="$(echo '{{Task.Param.Frame}}' | cut -d- -f2)"Con
rangeConstraint: NONCONTIGUOUS, la variable se expande hasta convertirse en una expresión de rango arbitraria, como1-3,5,7-20:2. Transforma la expresión en la sintaxis que acepta tu aplicación. Para ver una transformación que funcione, consulte los ejemplos de fragmentación detareas. GitHub -
Envíe el paquete de trabajos con la CLI de Deadline Cloud:
deadline bundle submitmy-job-bundle -
Para comprobar que la fragmentación está en vigor, abra el trabajo en el monitor de Deadline Cloud y consulte la lista de tareas del paso. Cada tarea representa un fragmento y muestra un rango de fotogramas, por ejemplo,
1-10en lugar de un único número de fotogramas.
La siguiente plantilla de trabajo completa renderiza una animación de Blender en fragmentos de 10 fotogramas:
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, como 1-10 y11-20, y cada tarea renderiza su fragmento con una sola invocación de Blender.
Para obtener más información, consulte los temas siguientes:
-
Agrupe los fotogramas en fragmentos con la fragmentación de tareas en Deadline Cloud— Ready-to-submit fragmentar muestras, incluida una variante no contigua.
-
Cómo enviar un trabajo a Deadline Cloud— Envía el paquete de trabajos a tu lista de espera.