

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 작업 템플릿에 대한 작업 청킹
<a name="build-job-bundle-chunking"></a>

작업 청킹을 사용하면 여러 작업을 청크라는 단일 작업 단위로 그룹화할 수 있습니다. 예를 들어 렌더링 작업에서 Deadline Cloud는 명령 호출당 하나의 프레임 대신 여러 프레임을 함께 디스패치할 수 있습니다. 이렇게 하면 각 작업에 대한 애플리케이션 시작 오버헤드가 줄어들고 총 작업 런타임이 단축됩니다. 자세한 내용은 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` – (필수) 단일 청크로 결합할 작업 수입니다. 최대값은 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) 샘플을 참조하세요.

**고객 관리형 플릿 요구 사항**  
작업 청킹에는 호환되는 작업자 에이전트 버전이 필요합니다. 고객 관리형 플릿을 사용하는 경우 청킹으로 작업을 제출하기 전에 작업자 에이전트가 업데이트되었는지 확인합니다. 서비스 관리형 플릿은 항상 호환되는 작업자 에이전트 버전을 사용합니다.

**청크 작업에 대한 출력 다운로드**  
청크 작업에서 단일 작업에 대한 출력을 다운로드하면 Deadline Cloud는 전체 청크에 대한 출력을 다운로드합니다. 예를 들어 프레임 1\$110이 함께 처리된 경우 프레임 3에 대한 출력을 다운로드하면 모든 프레임 1\$110이 포함됩니다. 이 기능을 사용하려면 `deadline-cloud` 버전 0.53.3 이상이 필요합니다.