AWS Thinkbox Discussion Forums

Priority to faster slaves?

Hi all, new to Deadline and getting my head around groups and pools.

Sorry for the dummy question, but how do you make sure fast slaves get first priority over slower slaves?

We have 2 classes of render slaves, faster dual-xeons, and slower single hexacores. I want to set it up so a slower machine will never start a frame if a fast machine is idle. (which is often - we don’t do much animation, mostly 8K stills on a small farm)

3dsmax Backburner has a performance index (terrible implementation :imp: ) but the idea is sound, especially if you could simply set up a manual slave priority list.

Pools! I have two pools, “Fast” and “slow” but this is from the documentation and clearly describes a scenario similar to yours.What is import is that pools a machine belong to are prioritied by their order.

[code]Pools and Job Scheduling
How pools affect the job selection process is best explained through an example.

Say we need to render jobs for two shows, and we’ve already created corresponding pools for each show in Deadline:

show_a
show_b
Now say we have 10 machines in our render farm, and we want to give each show top priority on half the farm, but we don’t want half the farm sitting idle when jobs for one show finish up.

First, we’ll assign the pools to our slaves in the following order:

Slaves 0-4:
show_a
Slaves 5-9:
show_b
If jobs for both shows are in the queue, then slaves 0-4 will give priority to show_a jobs, and slaves 5-9 will give priority to show_b jobs. This accomplishes our first goal of giving priority to both shows. However, with this configuration, slaves 0-4 will sit idle when there are no more show_a jobs. The same for slaves 5-9 when there are no show_b jobs.

To accomplish our second goal of not having half the farm sit idle, we’ll assign the pools to our slaves in the following order:

Slaves 0-4:
show_a
show_b
Slaves 5-9:
show_b
show_a
Now, slaves 0-4 will give still give top priority to show_a jobs, and slaves 5-9 will still give top priority to show_b jobs. However, if show_a jobs finish up, slaves 0-4 will then start working on show_b jobs. Also, if show_b jobs finish up, slaves 5-9 will then start working on show_a jobs.

If all slaves are working on show_b jobs, and new show_a jobs get submitted, then slaves 0-4 will finish up their current task and move on to give the show_a jobs priority again.

Note that all slaves will render jobs that are submitting to the none pool. However, the slaves will only give priority to none jobs when jobs for all their assigned pools have finished rendering.[/code]

Thanks for the quick response…

Kind of surprised that the relative speed of slaves is not dealt with in farm management software in version 6!

I must think differently to regular folks. :laughing:

Having said that, this is the first gripe I have found with otherwise awesome software. Learning Deadline is like waking up from a very bad 15 year Autodesk Backburner nightmare. :imp:

Yeah, pools is the best option. I am not sure we have felt like it’s our place to put any prioritizations into effect for customers. We have lots of great scheduling options in 7.0 beta, so I will pass along that feature request to have some weight put to speed. Thanks!

This is a question that has come up from time to time over the years, and the issue within Deadline is that it’s a bit tricky to implement.

The main issue is that for the most part, every Slave is an Island. It has everything it needs to grab a job for itself, render, and report back. It itself has no real means of talking to other Slaves, except maybe looking in the ‘limits’ mailboxes to make sure there’s still enough room for it to dequeue a task from a specific job.

So, in their little world, they finish their task and sit there, waiting for the clock to count down until they can look again. Since the trigger time is related to the time they finished the last task (either two or twenty seconds seconds since the task completed), whether they’re the first to grab the job versus the others is a matter of chance.

I believe we’re doing some really amazing stuff in Deadline 8 or 9 around job scheduling, so we might be able to do something dynamic. If anyone has an idea how this could be made to work without pools, I’m definitely interested to hear it.

Privacy | Site terms | Cookie preferences