AWS Thinkbox Discussion Forums

Override the framesPerTask for Frame Range

Hi,
I was wondering if I could override the auto grouping built into Deadline when i specify framesPerTask.

For example, if i had a ‘frameList’ of 1-40 and ‘framesPerTask’ of 10. This would create 4 task like;

[1-10, 11-20, 21-30, 31-40]

I was wondering if I could modify the frame range to say

[1-4, 5-10, 11-20, 21-23, 24-30, 31-40]

and it would create 6 task instead of 4. Right now, at the moment [1-4, 5-10] and [21-23, 24-30] would bundle together because of the framesPerTask set to 10.

Thanks!

Well if you wish you could set framesPerTask such that frames are divided among the n machines you want
framesPerTask=num_frames/num_machines
Or do you insist on having manual control over the ranges?

I would need more manually control. Atm, I wrote a tool to recover frames from task that fail midway through rendering.
For example if i had a task [1-10] that failed midway through render, if [1-4] frames completed, i want to split the task up to [1-4] [5-10]. [1-4] will be marked as complete and [5-10] will be requeued.

Ok I see. This is quite a bit more complicated, but I suppose it is doable.
I’d wager it would be a deep change/extension, though.

You can manually build the list here. “Frames Per Task” just slice things up for you when it goes off to DeadlineCommand so you don’t need to worry about math on your own. If you set “Frames Per Task” to be 100000 it won’t do any splitting and you’ll have full control. Details on that here in the docs.

I’m a little surprised that Deadline is bundling them. It’s not supposed to. If you can provide a test job info file I can pass that along.

An aside, if you’re working with a plugin that supports batch mode that keeps the rendering app open, the ranges are less important and you can specify individual frames. If you do want to regroup them, the algorithm might be a little tricky.

1 Like

jzhu__Python__Testing__5b92df9a8bee0c3d5cfc89ee.zip (2.6 KB)
Here is an example I made.
FrameList = 1-40
FramesPerTask = 10
if I modify the frame range to
FrameList = 1-4,5-10,11-40
FramesPerTask = 100000.
The resulting task would be 1 task with a FrameList = 1-40.
This makes sense because the framesPerTask is set so high, but i was wondering if there are any workarounds I could do to make it 3 task instead one 1

Hello,

I have asked the devs to look into this, as the behaviour was different in previous major versions. Hopefully at least an override option on the bundling of the frames would help. I’ll let you know what we hear.

Just to provide a little more detail, my recommendation worked in Deadline 8 but not 10. I had a great idea this morning and it seems to have worked: If you don’t list them sequentially they won’t be merged together. I’m not sure if you’re fine with re-rendering in reverse…

If you are you can something like this in Python:

frame_str='1,2,3-4,5-10'
frame_list=frame_str.split(',')
print(','.join(frame_list))
# Gives '1,2,3-4,5-10'
print(','.join(reversed(frame_list)))
# Gives '5-10,3-4,2,1'

Hi,
Sorry for the late reply, your suggestion worked perfectly. The new frame kept its chunking and accounted for the frames per task.

Thanks!

Glad to help! I’ll keep an eye on this task list business, but it’s not a common ask.

Privacy | Site terms | Cookie preferences