It would be great if you could assign a render to two slaves. If one finished it would cancel the other.
Wouldn’t this be like halving the efficiency of your renderfarm if you did this to all jobs in your queue?
You could submit 2 jobs with the same name to the farm, and then have an event plugin that watches for jobs that complete, and when they do, deletes any other jobs with the same name.
Well I’m imagining this kicking in once a slave is idle. So when a slave goes idle it starts tag-teaming tasks if it has nothing else to do.
What we encounter is that we’ll submit a big long job and some machines are literally 4x faster than others. So just by luck of the draw a slow machine picks up task 150 of 150 and is plugging away. Meanwhile the job finishes and the farm starts going into idle shut-down. If the slow slave just quit and handed the job off to a faster machine with a 4.0 relative normalization it would finish maybe an hour earlier instead of the entire sequence held up by one handicapped slave. On the other hand, even a bunch of handicapped slaves are helpful overall since enough slow tortoises can chip away at the overall job completion.
I guess this could be handled more intelligently than multiple machines working on it. But the ‘brute force’ approach would be to have 3-4 slaves try to render it and then which ever finishes wins. This could also feed back onto itself though. As slaves “win” show-downs it could win points. And the faster slaves’ normalization value could increase automatically relative to their peers. Over time if it only assigns 1 extra slave it could pick the slave with the most wins to be go-to slave for priority if it’s free.
This would also be able to feed back into a Deadline database to track slow-slaves since it would be apples to apples challenges and help with job completion estimates.
Wouldn’t work with tasks though.