Backburner - when it looks like all machines are waiting for a particular machine

By - - 3ds Max
Duration
3 mins

You're rendering an animation using Backburner and you notice that all the machines seem to wait for a particular machine before they finish their frame and request a new one.

There isn't any logic why a render wouldn't complete before the next one can start: each Backburner server machine renders a frame or a number of frames (when task blocking is set in the advanced options, depending on the performance of the machine a certain number of frames are allocated per server). There shouldn't be any dependencies between the servers.

 

Possible causes

One thing that could cause this is when you also running a Backburner server on the machine on which you're running the Backburner manager. The machine could be so busy rendering that it doesn't get to sending another job to the other machines. Once it's finished rendering the frame it will send the jobs out.

Another thing would be if you're saving the render output on a machine that's also running a Backburner server. The same thing as in the previous example could happen there: the machine is just too busy rendering so it won't save the image files until it's finished rendering the frame.

 

Possible impact

In a scenario where the slowest machine runs the Backburner manager or is used to store the render output you could have most of your render farm sitting idle most of the time. Even if it's the fastest machine this could have an impact as it's unlikely that the other machines finish rendering at the point in time where it finishes rendering.

 

So how bad could it be? Let's render 100 frames, the render farm has one slow machine that  renders a frame in five minutes and two fast machines that render the frame in one minute. 

1. in the ideal situation the slow machine renders 9 frames [100*1/(1+5+5)] and the fast machines each render 45 and 46 frames [100*5/(1+5+5)] and it therefore takes 46 minutes the render the animation.

2. if the slowest machine hold the others back it gets a lot worse: now it takes five minutes per frame on all three machines and they render 33, 33 and 34 frame. So in the worst possible case the slowest machine is the one that renders 34 frames:  2 hours 50 minutes!

3. if one of the fast machines is holding back the others that means they will wait a full minute per frame (i'm asuming worst case: they're done rendering a fraction of a second after the other machine starts rendering). So the second fast machine now takes two minute to render the frame and the slow machine six minutes. The fast machine renders 60 frames [100*12/(2+6+12)], the fast one that's held back renders 30 frames [100*6/(2+6+12)]  and the slow machine 10 frames [100*2/(2+6+12)]. And it takes an hour to render. If you a bit more optimistic and say that on average they wait 30 seconds it will take 54 minutes to render.

 

Ways to make sure this doesn't happen

Without diving into the problerm you could just stop the Backburner server (or server service) on the machine they're all waiting for, that will probably be faster already.

A better approach will be to make sure that you:

  • run the Backburner manager on a machine that doesn't also runs a Backburner server
  • and saves file to a fileserver that doesn't run a Backburner server.

 

Posted By
Published In
Tags
  • 3ds Max
  • Rendering
  • Tips and Tricks
5 Comments
To post a comment please login or register
| 8 years ago
Hey.. Not really related to the article but.. Isn't the terminology of everything turned around? I found this always weird with Backburner. With other render managers or any connecting application like msn, skype whatever, the 'server' is 'BB Manager' and the nodes rendering are the 'clients/slaves'.. With BB it's the other way around.. A master 'serves/delegates' jobs to his 'slaves'.. Then again you can say.. The slaves 'serve' the master... ahh whatever.. still it's weird the way it is now compared to other similar systems. :)
| 8 years ago
And bear in mind that just running Manager and not doing any rendering is not a very difficult task for a computer. A fairly weak machine will do it without breaking a sweat. So rather than having a powerhouse workstation or render node sat doing just that, you can use a cheap/old obsolete machine for it, one that would otherwise only be of use as a doorstop for a Max user. I use a dedicated fileserver to store all maps, renders and run BB Manager, Max is not even installed on it, so it never renders. Being a server it handles all the net-traffic without a problem. It's good system because the farm is totally independant from the workstation, it just keeps going no matter what I do with the workstaion. Even if I turn it off, unplug and pull the guts out, the farm doesn't even notice. But I can still run BB Server on the workstation at night and weekends.
| 8 years ago
Oh too late... sorry ;)
| 8 years ago
Use windows priority system ;) Run the manager with normal priority and the server with lower priority ;)
| 8 years ago
I run our render farm with a dedicated machine for the manager, so I don't see these issues. I would bet that running the 3ds max process at below normal or low priority would help or eliminate the problems. Doing a search on scriptspot would turn up a one-line script that does just that: if max was launched as a net-render job, then set its priority to low. Put it in the startup script folder and ta-da!
*Save $66 per month on Autodesk's Suggested Retail Price (SRP) when purchasing 1 year term 3ds Max or Maya subscription.