Client Averaging


How does "Average clients between users" work?


At first it will only work, if the jobs are send by different Users/Company Projects (depends on your RR config).


A little example:

- You have 9 clients in your farm (PC1 to PC9)

- Three users have send a job. User A, B and C at the same time. They choose all the clients to render.


If all clients have the same PS (processor speed), the server tries to reach

PC 1, PC 2, PC 3 : Job A

PC 4, PC 5, PC 6 : Job B

PC 7, PC 8, PC 9 : Job C


It won't be this case all the time, cause the server is only able to influence the job of a client if the client asks for a new job.

The more frequently the clients are asking for a new job, the better the server is able to arrange the clients.


Worst case:

Job A was send at first to the server, there is no other job at the server at this time. It is a very complex rendering e.g. 500 frames with 30 minutes per frame. It would take whole a day on all of your 9 machines. The server will send this job to all clients, cause there is no other job to render.


Then you send job B and C.


Without sequence divide:

   Cause the clients are rendering job A, they won't ask for a new job until they finished job A.

   The farm is rendering the whole day (and night) on Job A.

With sequence divide:

   Job A was send with sequence divide (max 10 frames). The clients will render one chunk after an other.

   One chunk takes 10 frames x 30 minutes = 5 hours.

   The clients will ask every 5 hours for a new job.

   = > After 5 hours the server is able to average the clients between jobs A, B and C.


With "Allow server to abort jobs for better averaging":

   Every 6 hours the server analyses a list how many clients all users take.

   If one user has many more than the average number of clients, the server aborts some clients with jobs of this user.


If Job B or C are a very important job, you have to set it to ultimate priority and enable "abort lower jobs" (while submitting).



Debugging


If you think that the averaging does not work right, there is a way to debug for issues.


You can see more information why a job was send.


Check the value for "Allow Server to abort clients for averaging" in rrConfig.

If it is every 3 hours, then the server executes it at 3:00, 6:00, 9:00....

If it is every 5 hours, then the server executes it at 5:00, 10:00, 15:00....


A few minutes after that time, please check if the clients are spread evenly across the user/projects.


For example:

UserA has 15 clients.

UserB has 3 clients.


Open rrControl.

- Select the job of UserA with the most clients rendering.

- Right-click on the job and choose "select clients rendering selected job"

- Strg-click on a job of UserB.

- Choose "show send job to client decision" via the menu "Debug".


Note: You can select up to 5 different jobs.

The important information in this case is the "send" or "NOT send".

If all are "send", then compare the numbers, the higher the number, the earlier the job is send.