Howdy,
I've been a qube user/admin for almost 4 years, but I have not yet arrived at a great scheme for dividing our render nodes between multiple projects. Our farm has ranged from 20-100 nodes during this time. Most often there are 2-6 projects competing for render power. Each project has a number of render jobs queued at any one time.
This is generally our farm layout:
05 nodes of /2D
10 nodes of /3D/General
10 nodes of /3D/ProjectA
10 nodes of /3D/ProjectB
...
We keep our /2D nodes in a separate group so that they are only available for 2D renders.
For our 3D renders, all the user must specify a cluster before submitting. This is controlled by a custom in-app render submitter. Beyond assigning clusters, the only restriction option we allow is an exact cluster restriction such as "/3D/ProjectA". The docs describe the ability to specify multiple clusters in a restriction such as "/3D/ProjectA,/3D/General", but this has not yet worked for me. At the moment, I can have a job run on all the nodes in the group, or on a single cluster.
Beyond our clustering setup, I was hoping to play with preemption to achieve better queue processing. The only modes I see are 'passive', 'active', and 'disabled'. From my tests, 'active' will cause a loss of render time by killing a frame/task before completion. 'passive' should kill a subjob when "convenient", but it seems to me that the subjob will exhaust all tasks/frames from the current job before exiting. I would expect the subjob to exit when a task/frame is complete. From my standpoint, 'passive' seems to be equal to 'disabled'. It is quite possible that I have something misconfigured.
So if any of you all are willing to share, I would love to know what mix of priorities, clusters, restrictions, preemption, etc that you have set up. I would be glad to change my game if I can get the farm working more efficiently.
Cheers,
jesse