Aufgabenteilung für Jobvorlagen - Deadline Cloud

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.

Aufgabenteilung für Jobvorlagen

Durch Aufgaben-Chunking können Sie mehrere Aufgaben zu einer einzigen Arbeitseinheit zusammenfassen, die als Chunk bezeichnet wird. In einem Renderjob bedeutet dies beispielsweise, dass Deadline Cloud mehrere Frames zusammen versenden kann, anstatt einen Frame pro Befehlsaufruf. Dies reduziert den Aufwand beim Starten von Anwendungen für jede Aufgabe und verkürzt die Gesamtlaufzeit des Jobs. Einzelheiten finden Sie unter Mehrere Frames gleichzeitig ausführen im OpenJD-Wiki.

OpenJD unterstützt Erweiterungen, die Jobvorlagen um optionale Funktionen erweitern. Das Aufteilen von Aufgaben wird durch Hinzufügen der Erweiterung aktiviert. TASK_CHUNKING Um Chunking zu verwenden, fügen Sie die Erweiterung zu Ihrer Jobvorlage hinzu und verwenden Sie den CHUNK[INT] Task-Parametertyp. Senden Sie Jobs in Einzelteilen mit demselben Befehl. deadline bundle submit Die folgende Jobvorlage rendert beispielsweise Frames in Blöcken von 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

In diesem Beispiel unterteilt Deadline Cloud die 100 Frames in Blöcke wie1-10, usw. 11-20 Die {{Task.Param.Frame}} Variable wird zu einem Bereichsausdruck wie erweitert. 1-10 Da auf gesetzt rangeConstraint istCONTIGUOUS, ist der Bereich immer start-end formatiert. Das Skript analysiert diesen Bereich und übergibt die Start- und Endframes mithilfe der -e Optionen -s und mit --render-anim an Blender.

Die chunks Eigenschaft unterstützt die folgenden Felder:

  • defaultTaskCount— (Erforderlich) Wie viele Aufgaben zu einem einzigen Block zusammengefasst werden sollen. Der Höchstwert ist 150.

  • rangeConstraint— (Erforderlich) WennCONTIGUOUS, ist ein Chunk immer ein zusammenhängender Bereich wie. 1-10 WennNONCONTIGUOUS, kann ein Chunk eine beliebige Menge sein wie. 1,3,7-10

  • targetRuntimeSeconds— (Optional) Die Ziellaufzeit in Sekunden für jeden Chunk. Deadline Cloud kann die Chunk-Größe dynamisch anpassen, um sich diesem Ziel zu nähern, sobald einige Chunks abgeschlossen sind.

Weitere Beispiele für das Chunking von Aufgaben, darunter einfache Beispiele und Blender-Beispiele mit zusammenhängenden und nicht zusammenhängenden Chunks, finden Sie in den Beispielen zum Aufgaben-Chunking im Deadline Cloud-Beispiel-Repository unter. GitHub

Vom Kunden verwaltete Flottenanforderungen

Für das Aufteilen von Aufgaben ist eine kompatible Worker-Agent-Version erforderlich. Wenn Sie vom Kunden verwaltete Flotten verwenden, stellen Sie sicher, dass Ihre Worker Agents auf dem neuesten Stand sind, bevor Sie Jobs mit Chunking weiterleiten. Vom Service verwaltete Flotten verwenden immer eine kompatible Worker-Agent-Version.

Die Ausgabe für Einzelaufträge wird heruntergeladen

Wenn Sie die Ausgabe für eine einzelne Aufgabe in einem aufgeteilten Job herunterladen, lädt Deadline Cloud die Ausgabe für den gesamten Block herunter. Wenn beispielsweise die Frames 1—10 zusammen verarbeitet wurden, umfasst das Herunterladen der Ausgabe für Frame 3 alle Frames 1—10. Für diese Funktion ist deadline-cloud Version 0.53.3 oder höher erforderlich.