

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

# ジョブテンプレートのタスクチャンキング
<a name="build-job-bundle-chunking"></a>

タスクチャンキングを使用すると、複数のタスクをチャンクと呼ばれる単一の作業単位にグループ化できます。たとえば、レンダリングジョブでは、Deadline Cloud はコマンド呼び出しごとに 1 フレームではなく、複数のフレームを一緒にディスパッチできることを意味します。これにより、各タスクでアプリケーションを起動するオーバーヘッドが軽減され、合計ジョブランタイムが短縮されます。詳細については、OpenJD Wiki の[「一度に複数のフレームを実行する](https://github.com/OpenJobDescription/openjd-specifications/wiki/Job-Intro-03-Creating-a-Job-Template#42-running-multiple-frames-at-a-time)」を参照してください。

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-10`、 `11-20`などのチャンクに分割します。`{{Task.Param.Frame}}` 変数は、 のような範囲式に展開されます`1-10`。`rangeConstraint` は に設定されているため`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 サンプルリポジトリの「タスクチャンキングサンプル](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/task_chunking)」を参照してください。

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

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