ジョブテンプレートのタスクチャンキング - Deadline クラウド

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ジョブテンプレートのタスクチャンキング

タスクチャンキングを使用すると、複数のタスクをチャンクと呼ばれる単一の作業単位にグループ化できます。たとえば、レンダリングジョブでは、Deadline Cloud はコマンド呼び出しごとに 1 フレームではなく、複数のフレームを一緒にディスパッチできることを意味します。これにより、各タスクでアプリケーションを起動するオーバーヘッドが軽減され、合計ジョブランタイムが短縮されます。詳細については、OpenJD Wiki の「一度に複数のフレームを実行する」を参照してください。

OpenJD は、ジョブテンプレートにオプション機能を追加する拡張機能をサポートしています。TASK_CHUNKING 拡張機能を追加することで、タスクチャンキングが有効になります。チャンキングを使用するには、 拡張機能をジョブテンプレートに追加し、 CHUNK[INT] タスクパラメータタイプを使用します。同じdeadline bundle submitコマンドを使用してチャンクされたジョブを送信します。たとえば、次のジョブテンプレートは 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

この例では、Deadline Cloud は 100 フレームを 1-1011-20などのチャンクに分割します。{{Task.Param.Frame}} 変数は、 のような範囲式に展開されます1-10rangeConstraint は に設定されているためCONTIGUOUS、範囲は常に start-end形式です。スクリプトはこの範囲を解析し、 の -sおよび -eオプションを使用して開始フレームと終了フレームを Blender に渡します--render-anim

chunks プロパティは、次のフィールドをサポートしています。

  • defaultTaskCount – (必須) 1 つのチャンクに結合するタスクの数。最大値は 150 です。

  • rangeConstraint – (必須) の場合CONTIGUOUS、チャンクは常に のような連続した範囲です1-10。の場合NONCONTIGUOUS、チャンクは のような任意のセットにすることができます1,3,7-10

  • targetRuntimeSeconds – (オプション) 各チャンクの秒単位のターゲットランタイム。Deadline Cloud は、いくつかのチャンクが完了すると、このターゲットに近づくようにチャンクサイズを動的に調整できます。

連続チャンクと非連続チャンクの両方を含む基本および Blender の例を含むその他のタスクチャンキングの例については、GitHub の Deadline Cloud サンプルリポジトリの「タスクチャンキングサンプル」を参照してください。

カスタマーマネージドフリートの要件

タスクチャンキングには、互換性のあるワーカーエージェントバージョンが必要です。カスタマーマネージドフリートを使用する場合は、チャンキングでジョブを送信する前に、ワーカーエージェントが更新されていることを確認してください。サービスマネージドフリートは常に互換性のあるワーカーエージェントバージョンを使用します。

チャンクジョブの出力のダウンロード

チャンクジョブ内の 1 つのタスクの出力をダウンロードすると、Deadline Cloud はチャンク全体の出力をダウンロードします。例えば、フレーム 1~10 が一緒に処理された場合、フレーム 3 の出力のダウンロードにはすべてのフレーム 1~10 が含まれます。この機能にはdeadline-cloudバージョン 0.53.3 以降が必要です。