This is kind of a long shot, but is there any way to set up a specific slave or pool so it will cancel/requeue a render for a lower priority pool when a job from a higher priority pool is available to render? Here’s our scenario: we have a small pool of slaves that are dedicated to Project A, but we’d like them to be able to render for Project B when Project A doesn’t have any jobs in the queue. However, when a job is submitted for Project A, these slaves can’t pick up the Project A tasks until they finish their current tasks for Project B, which could take up to an hour. As it is, I have to remove these slaves from the pool for Project B altogether to avoid these delays. I don’t think you have any functionality like this, but I thought I’d check just in case I missed something. Thanks!
There is an Interruptible option you can set for jobs, which will allow them to be interrupted if a higher priority job comes along. However, this isn’t pool based, so these jobs could be affected on any machines they are rendering on.
Generally, interrupting jobs isn’t recommended, because this results in wasted rendering time. In your example, if you have 5 tasks for the lower priority job, and they’ve been each rendering for an hour, you’ll lose 5 hours of rendering time when a higher priority job gets submitted. At least you always have the manual option of canceling those tasks if you absolutely need to get something rendering on those machines immediately.
Cheers,
- Ryan
Thanks, that makes sense. Yeah, I understand that we’d be losing render time by interrupting jobs - in this case it’s just a matter of either getting some render time for other projects (with interruptions) from these slaves, or no render time at all for other projects. We’ll work with our setup as is then. I just thought I’d make sure I wasn’t missing anything obvious…
if its 3d you could render in tiles, breaking up that frame into <1 hour
cb