Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Fügen Sie Task-Chunking zu einer Job-Vorlage hinzu
Das folgende Verfahren konvertiert eine Auftragsvorlage, die einen Frame pro Aufgabe rendert, in eine Vorlage, die Frame-Blöcke rendert. Hintergrundinformationen zum Chunking und zur Auswahl einer Chunk-Größe finden Sie unter. Aufgabenteilung für Jobvorlagen
Bevor Sie beginnen, muss Folgendes sichergestellt sein:
-
Ein Auftragspaket mit einer Auftragsvorlage, die einen Frame-Task-Parameter definiert. Weitere Informationen finden Sie unter Elemente der Jobvorlage für Jobpakete.
-
Eine Warteschlange, die einer Flotte zugeordnet ist, die Chunking unterstützt. Service-managed Auf Flotten läuft immer ein kompatibler Worker Agent. Customer-managed Flotten benötigen Worker Agent Version 0.28.21 oder höher für die Worker.
Um einer Job-Vorlage Aufgaben-Chunking hinzuzufügen
-
Fügen Sie die
TASK_CHUNKINGErweiterung am Anfang Ihrertemplate.yamlDatei hinzu:specificationVersion: 'jobtemplate-2023-09' extensions: - TASK_CHUNKINGWenn Sie diesen Schritt überspringen, schlägt die Auftragserstellung mit dem folgenden Fehler fehl
The CHUNK[INT] task parameter requires the TASK_CHUNKING extension. -
Ändern Sie in den Schritten den Parametertyp der Frame-Aufgabe von
INTaufCHUNK[INT]und fügen Sie die folgendechunksEigenschaft hinzu:parameterSpacetaskParameterDefinitions: - name: Frame type: CHUNK[INT] range: "{{Param.Frames}}" chunks: defaultTaskCount: 10 rangeConstraint: CONTIGUOUSAlle verfügbaren Felder finden Sie unterReferenz für den CHUNK [INT] -Aufgabenparameter.
-
Aktualisieren Sie das Skript des Schritts so, dass es einen Frame-Bereich statt eines einzelnen Frames akzeptiert. Mit
rangeConstraint: CONTIGUOUSwird die{{Task.Param.Frame}}Variable immer auf einenstart-endFormatbereich erweitert, sodass das Script sie mit demcutfolgenden Befehl aufteilen kann:START_FRAME="$(echo '{{Task.Param.Frame}}' | cut -d- -f1)" END_FRAME="$(echo '{{Task.Param.Frame}}' | cut -d- -f2)"Mit
rangeConstraint: NONCONTIGUOUSwird die Variable auf einen beliebigen Bereichsausdruck erweitert, wie1-3,5,7-20:2z. B. Transformieren Sie den Ausdruck in die Syntax, die Ihre Anwendung akzeptiert. Eine funktionierende Transformation finden Sie in den Beispielen für dasAufteilen von Aufgaben unter. GitHub -
Reichen Sie das Job-Paket mit der Deadline Cloud-CLI ein:
deadline bundle submitmy-job-bundle -
Um zu überprüfen, ob das Chunking wirksam ist, öffnen Sie den Job im Deadline Cloud-Monitor und sehen Sie sich die Aufgabenliste des Schritts an. Jede Aufgabe stellt einen Block dar und zeigt beispielsweise
1-10anstelle einer einzelnen Frame-Nummer einen Frame-Bereich an.
Die folgende vollständige Auftragsvorlage rendert eine Blender-Animation in Blender-Abschnitten von 10 Bildern:
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
In diesem Beispiel unterteilt Deadline Cloud die 100 Frames in Blöcke wie 1-10 und11-20, und jede Aufgabe rendert ihren Chunk mit einem einzigen Blender-Aufruf.
Weitere Informationen finden Sie unter den folgenden Themen:
-
Gruppieren Sie Frames in Chunks mit Aufgaben-Chunking in Deadline Cloud— Aufteilen von Samples, Ready-to-submit einschließlich einer nicht zusammenhängenden Variante.
-
So reichen Sie einen Job bei Deadline Cloud ein— Reichen Sie das Job-Paket in Ihre Warteschlange ein.