These samples demonstrate the Task Chunking extension for Open Job Description, which improves resource utilization by grouping multiple frames or tasks into chunks instead of processing them individually.
Render jobs often spend significant time loading applications and scene files before rendering each frame. Chunking amortizes this overhead by processing multiple frames or tasks per chunk, reducing total job runtime.
This table covers every immediate sample directory in task_chunking/.
| Sample | What it demonstrates | Start here when |
|---|---|---|
| Basic contiguous chunks | CHUNK[INT] with rangeConstraint: CONTIGUOUS and start/end parsing |
Your command accepts consecutive frame ranges |
| Basic non-contiguous chunks | CHUNK[INT] with arbitrary sparse frame sets |
Your command accepts lists such as 1-3,5,7-20:2 |
| Blender contiguous chunks | Applying contiguous task chunks to a frame render | Blender should load once for several consecutive frames |
| Blender non-contiguous chunks | Applying scheduler-selected non-contiguous chunks to a frame render | Blender can render arbitrary frame lists per task |
The Blender variants add the TASK_CHUNKING extension and a ChunkSize parameter to the base
Blender render sample. They change the frame task parameter from INT to
CHUNK[INT] and set a target runtime so the scheduler can adjust chunk size.
specificationVersion: 'jobtemplate-2023-09'
extensions:
- TASK_CHUNKING
steps:
- name: Render
parameterSpace:
taskParameterDefinitions:
- name: Frame
type: CHUNK[INT]
range: "{{Param.Frames}}"
chunks:
defaultTaskCount: 10 # Default frames per chunk
targetRuntimeSeconds: 600 # Optional target used to adjust chunk size
rangeConstraint: CONTIGUOUS # or NONCONTIGUOUS| Constraint | {{Task.Param.Frame}} expands to |
Use when |
|---|---|---|
CONTIGUOUS |
"1-10", "11-20" |
The application supports start/end frame arguments |
NONCONTIGUOUS |
"1-3,5,7-10" |
The application supports arbitrary frame lists |