

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Pembagian tugas untuk templat pekerjaan
<a name="build-job-bundle-chunking"></a>

Task chunking memungkinkan Anda mengelompokkan beberapa tugas ke dalam satu unit kerja yang disebut chunk. Dalam pekerjaan render, misalnya, ini berarti Deadline Cloud dapat mengirimkan beberapa frame bersama-sama, bukan satu frame per permintaan perintah. Ini mengurangi overhead aplikasi awal untuk setiap tugas dan mempersingkat total runtime pekerjaan. Untuk detailnya, lihat [Menjalankan beberapa frame sekaligus](https://github.com/OpenJobDescription/openjd-specifications/wiki/Job-Intro-03-Creating-a-Job-Template#42-running-multiple-frames-at-a-time) di wiki OpenJD.

OpenJD mendukung ekstensi yang menambahkan fitur opsional ke template pekerjaan. Chunking tugas diaktifkan dengan menambahkan ekstensi. `TASK_CHUNKING` Untuk menggunakan chunking, tambahkan ekstensi ke template pekerjaan Anda dan gunakan tipe parameter `CHUNK[INT]` tugas. Kirim pekerjaan yang terpotong menggunakan perintah yang sama`deadline bundle submit`. Misalnya, template pekerjaan berikut merender frame dalam potongan 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
```

Dalam contoh ini, Deadline Cloud membagi 100 frame menjadi potongan-potongan seperti`1-10`,`11-20`, dan seterusnya. `{{Task.Param.Frame}}`Variabel meluas ke ekspresi rentang seperti`1-10`. Karena `rangeConstraint` diatur ke`CONTIGUOUS`, rentang selalu dalam `start-end` format. Skrip mem-parsing rentang ini dan meneruskan frame awal dan akhir ke Blender menggunakan `-e` opsi `-s` dan dengan`--render-anim`.

`chunks`Properti mendukung bidang-bidang berikut:
+ `defaultTaskCount`— (Wajib) Berapa banyak tugas untuk digabungkan menjadi satu bagian. Nilai maksimumnya adalah 150.
+ `rangeConstraint`— (Wajib) Jika`CONTIGUOUS`, potongan selalu merupakan rentang yang berdekatan seperti. `1-10` Jika`NONCONTIGUOUS`, potongan bisa menjadi set sewenang-wenang seperti. `1,3,7-10`
+ `targetRuntimeSeconds`— (Opsional) Target runtime dalam hitungan detik untuk setiap potongan. Deadline Cloud dapat secara dinamis menyesuaikan ukuran potongan untuk mendekati target ini setelah beberapa potongan selesai.

[Untuk contoh potongan tugas lainnya, termasuk contoh dasar dan Blender dengan potongan yang berdekatan dan tidak bersebelahan, lihat tugas memotong sampel di repositori sampel Deadline Cloud pada.](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/task_chunking) GitHub

**Persyaratan armada yang dikelola pelanggan**  
Task chunking memerlukan versi agen pekerja yang kompatibel. Jika Anda menggunakan armada yang dikelola pelanggan, pastikan agen pekerja Anda diperbarui sebelum mengirimkan pekerjaan dengan chunking. Armada yang dikelola layanan selalu menggunakan versi agen pekerja yang kompatibel.

**Mengunduh output untuk pekerjaan yang terpotong**  
Saat Anda mengunduh output untuk satu tugas dalam pekerjaan yang dipotong, Deadline Cloud mengunduh output untuk seluruh potongan. Misalnya, jika frame 1-10 diproses bersama, mengunduh output untuk frame 3 mencakup semua frame 1-10. Fitur ini membutuhkan `deadline-cloud` versi 0.53.3 atau yang lebih baru.