V-ray DBR off-load questions

Hi there!

We use deadline for producing large still images with V-ray. Now, we are moving from tile rendering to DBR off-load and I have a couple questions:

  1. Our workstations joins the render farm when Idle, and leave it when the user is back so some computers join and leaves the jobs randomly. In case all machines are together in the same job, and the machine running the task 0 (the master-slave) leaves the job, all the other machines stays waiting until a new computer joins to take care of the task 0. In that case I manually restart any worker so it takes the task 0 and resume the render.
    Is there a way to automatize this? To detect and prevent the task 0 to be NOT assigned to a computer while any other task of the job is running. Like a critical priority among tasks.

  2. The progress bar of the Job doesn’t show the render progress correctly, since only the task 0 progress is relevant. Is there a way to replace the job progress for its task 0 progress?

Thank you!

Any thoughts on this?

Hi again. Please, if this thread doesn’t deserve a reply from a stuff please let me know why (maybe I am missing something from the page 1 of the user guide…). Otherwise, if you are simply too busy under this covid circumstances, it is ok not to answer.

However, I am still trying to prevent off-load render jobs to keep all computers busy, just because a bucket is stuck. I am trying a new approach, which is to detect idle CPU on rendering machines. If a machine state is rendering, but the CPU has been zero or 1% used for the last 5 minutes, this machine can complete its task and move on. This solution will also be applicable in case the machine with the task 0 is removed from the rendering queue and there is no other machine available to host the Task 0 and continue rendering.

Which is the best way to detect a condition over time? ( CPU utilization over the last X minutes). I am still learning about coding, so my first guess is this:

  1. Event triggered by HouseCleaning event
  2. This event goes through all Workers and check if “CPU use < 2%” and “Status == Rendering.
  3. if True, then create an empty file “CPU_is_idle.txt” in job’s folder. If that file already exists and is older than 5 minutes, then the machine complete its task. If exists and is not older than 5 minutes then pass.

I suspect there must be more elegant and safe ways to do this, so I’ll be very please to hear different opinions. Code samples are more than welcome :slight_smile:

Thank you!

Privacy | Site terms | Cookie preferences