RenderManager - BackBurner

Written by Thorsten Kaufmann on .

Introduction

This tutorial will lead you through configuring and using the nuke2backburner submission script.
It was initially developed by Sebastian Elsner at RiseFX. For the purpose of this tutorial i have slightly
modified the original script to ease configuration and setting of default values within the script.

Here is the changelog from the script documenting the things i have changed.

Changelog
1
2
3
4
5
6
7
8
9
10
11
# Copyright (c) 2008 Rise|fx Gmbh, Schlesische Strasse 28 Aufgang B, 10997 Berlin
# Modified 2010 Thorsten Kaufmann, Mackevision Medien Design GmbH, Forststrasse 7, 70174 Stuttgart
#
# Changes:
# - Added default options on top for easier configuration/setting of defaults (used during __init__)
# - Added documentation for the defaults and options
# - Added "none" to the groups enum allowing for submission to all slaves without group assignment
# - Added MANAGER, NETMASK and PORT settings to allow for distinct manager configuration
# - Removed autodetection of cmdjob.exe (as it broke with x64 here). Instead set the PATH variable to include the cmdjob.exe location
# - Instead added function to detext if cmdjob is found within PATH and return if not
# - Added manager ip/hostname, port and netmask to the title for debugging

Now let's first take a look at backburner and why you might decide to choose it as your rendermanager.

Features and reasons to choose backburner:

  • Comes bundled with Max and now also Maya
  • Is not windows only anymore (yay)
  • Free as in...well...free
  • Rather solid for small to medium farms
  • Commandline submission interface (via cmdjob.exe wich is also used in the nuke2backnurner script) allows submission of any kind of job, ranging from setting environment variables to deploying software installations


Limitations:

  • Missing some advanced functionality that is available in commercial render managers (clustering, license usage tracking, database backends etc etc)
  • Not scaling too well with heavy load (many hundred jobs, many users at once etc.)
  • Not as customizable as commercial alternatives. Even tho quite some custom stuff can be done with some trickery 

Limitations of the script:

  • There is no direct communication with backburner. So groups are hardcoded in the settings instead of beeing dynamically pulled for australia online pokies example
  • There is no feedback or monitoring within nuke. Backburner comes with both a monitoring application and a monitoring webinterface tho.
  • Some features that would be possible using cmdjob.exe are not  impletemented. Including but not limited to SuspendedSubmission,  Submission to specific servers, email notifications, archiving,  taskBlocking settings and various more. Shouldnt be to hard to add them tho if anyone needs them.
  • The script assumes that the very same nuke version is installed to  the same path on all renderslaves (as it constructs the executable  path from the nuke instance the job is submitted from) and does no checks whatsoever. 

Instructions

Prerequisites:

  • Local vanilla Nuke installation
  • Local vanilla Backburner installation (should already be present if you have Max or Maya installed)
  • Working Backburner installation (Backburner Manager running locally or on a dedicated manager machine) 
  • Get the script from nukepedia

Installation:

  • Add your Backburner directory to your path variable (controlpanel -> system -> advanced -> environment variables -> select variable named "PATH" -> click "edit" -> Add a semicolon to the end of the paths and paste the path to your cmdjob.exe)
  • Copy the script to a networkpath part of your nuke plugins directories or locally to locally to "drive:\PROGRAMFILES\NUKEPATH\nukescripts\"
  • Open your menu.py and add this line below the other import statements: "import  nuke2backburner"
  • Insert this line wherever you want the command to appear in the menu: "m.addCommand("Submit to Backburner",  "nuke2backburner.nuke2backburner()", "^b")" (This also sets Ctrl+B to be the shortcut for the command. Remove or edit "^b" if you do not want that.
  • If you have custom menu.py files or network centralized ones then you probably know what to do to add it to them
  • Configure the script (see next section) 

Configuration:

There are several REQUIRED settings to be set/changed in the python script to make it work and a bunch of optional settings and defaults that can easily be set on the top of the script:

REQUIRED Settings:

TASKLISTPATH = "//storage/Tasklists/"  
# TASKLISTPATH is the place were tasklists are saved. It MUST be  accessible by  
# all computers taking part in rendering

RENDERGROUPS = "none render10 render20"  
# These are global groups created on the backburner manager (you can  create them  
# in the backburner monitor). You have to keep the first entry "none" as if it  
# is used then the job is submitted to all available renderslaves

MANAGER = "192.168.103.204"  
# Hostname or IP of the manager machine

NETMASK = "255.255.255.0"  
# Network mask of the manager machine. Unless you have a special  setup the default 
 # should work

PORT = "3234"  
# Port the manager is running on. Default with a standard Backburner  install is 3234

Optional Settings:

optPriority = "50 10 20 30 40 50 60 70 80 90 100"  
# Available Priorities in the priority dropdown

Optional Default settings:

You can change these according to your personal needs if you want to.    

defProxyMode = 0  
# Default 0 (Off)  
# Render in proxymode. Set to 1 if you want it to be on by default    

defChunkSize = "5"  
# Default 5.  
# Amount of frames per task. Set to 1 if you want each frame to be a  single task    

defNFrame = "1"  
# Default 1.  
# Render every n-th frame.    

defDeleteAfter = 1  
# Default 1.  
# Delete Job after completion

Usage:

nuke2backburner

start_frame and end_frame:
Both are pulled from the current scripts' settings on launch and can be edited as needed  

n-frame:
Render only every n-th frame. Default can be changed in the  script  

proxy-mode:
if on render in proxy mode  render nodes: If you have write node(s) selected you can choose if  you want to render all write nodes or only selected ones  

chunk size:
determines how many frames will end up as a single task  in backburner. (Default can be set in the python script. Set to 1 if  each frame should be a task)  

priority:
priority of the job. The available priorities can be set  in the python script  

delete job after completion:
if on the job will autodelete itself  from the backburner manager after it is completed  

render group:
render only on a group of the renderslaves. These can  be configured in the python script. Mind you that the group must  exist as a global group on the manager for this to work. If set to the default of none the job will be  submitted to all renderslaves.

 

That's all folks. A BIG thank you goes to Sebastian for making the original script available to the public!

Comments   

 
# Joshua LaCross 2010-08-30 21:39
I'm a little new to the python stuff so forgive me, but I got it working for the most part the only trouble I'm having is, The render nodes seem to be ignoring the task list. The are rendering the project setting range and all 3 of my render nodes are trying to render the same frames at the same time. Otherwise, thanks for the script. I'm sure I'm missing something simple. :-)
 
 
# Thorsten Kaufmann 2010-09-01 02:03
Sorry for the late reply. I am currently in the progress of moving to a new flat and hence a little "under load". I will try and take a look asap what might be wrong and let you know!

Thanks for the feedback,
Thorsten
 
 
# Joshua LaCross 2010-09-01 11:14
Thanks! I should mention I'm running nuke 6.0v7, windows 7 64.
Both the python script and the task are on a mapped network drive that all 3 machines can see and I'm only using job group "none"
 
 
# Joshua LaCross 2010-09-08 12:33
I seemed to have fixed it in the section where is gathers the cmdText it says "%%", "%%", renderNFRameString).
I changed it to read "%", "%", renderNFRameString).
That must have fixed it because it seems to be doing the job now.

Thanks again, This is a great script!
 
 
# Jason Lee 2010-09-10 08:40
Great how to, and seems to work fine for submitting, but how do i get Backburner to launch nuke?
 
 
# Thorsten Kaufmann 2010-09-10 08:44
Thanks for the feedback Joshua and sorry for the delay. As said i am a bit of overloaded atm. Will try and fix it asap!

@Jason:

All you have to do is install nuke and make sure the nukepath is on the PATH variable so cmd.exe can find it.
Also you have to make sure to install the same version as the one you submit from.

Regards,
Thorsten
 
 
# Jason Lee 2010-09-10 08:49
Clicked to fast on submit :-) well in my backburner server windows it says:
Calling 'Nuke6.1.exe ......
Access is denied. (0x5)
Task error: Process cannot be added to job group
Application is down

any idea?
 
 
# Thorsten Kaufmann 2010-09-10 09:04
What happens if you open a commandprompt on the machine and simply type Nuke6.1.exe -> Enter ?
 
 
# Jason Lee 2010-09-10 09:41
it says Nuke 6.1.exe not recognized
 
 
# Thorsten Kaufmann 2010-09-10 09:55
That seems as if the path variable doesnt contain your nuke path.

Try this:

-Go to Control Panel -> System -> Advanced -> Environment variabled
-find the variable named "PATH"
-add a semikolon to the end and your full nuke path
 
 
# Jason Lee 2010-09-10 10:01
Ok Nuke starts now when i Type nuke6.1.exe, lets see what happens
 
 
# chris img 2010-10-19 07:29
Hi,

i also get this error message, and i can run nuke from the cmd promt.

do i have to add a global group even if i'm sending the job via the "none" option?
 
 
# Thomas Williams 2011-03-17 13:22
I'm using nuke 6.2v1 and having some troubles getting this script to run. It appears in the menu, but when i run it from there, it throws the error
name 'nuke2backburne r' is not defined
i tried to load it into the script editor and run it from there, but nothing seems to happen.
seems like this might be simple to fix, but i'm a python newb so any help would be appreciated.
Thomas
 
 
# Gary Couto 2011-03-29 09:05
Thanks for putting this together. Awesome script. Very much appreciated.

Could you add the ability to define server assignments and email notification once completed?

Would love the ability to specify just a single server machine or just half of the machines. I'm only asking because you wrote it shouldn't be to hard in your posting. :-D I found it very hard but then again, I'm a python newb.

Thanks again,
Gary
 
 
# Arjan Vlaanderen 2011-05-09 09:03
Hi Thorsten,

First a thank you for supplying this script! Very much appreciated!
Putting the scripts into place for 6.2 was a bit of searching, but we managed. Now when trying to submit to backburner I get the following error:
---------------------------
Nuke
---------------------------
name 'nuke2backburne r' is not defined
---------------------------
OK Hide Details...
---------------------------

Traceback (most recent call last):

File "", line 1, in

NameError: name 'nuke2backburne r' is not defined
--------------------

Here are some details about the adjusted settings: (left out the explaining text)
TASKLISTPATH = "R:nuke_tasklist"
RENDERGROUPS = "none nuke"
MANAGER = "zen"
NETMASK = "255.255.255.0"
PORT = "3251"

On my backburner mandager there's a group "nuke" which contains one machine.
Can you help out, or need additional info on the setup.

Help is appreciated!

Thanks,

Arjan
 
 
# lee spooner 2011-05-24 08:43
I was getting the: name 'nuke2backburne r' is not defined Error message,

I managed to fix it, because I had put the nuke2backburner .py in the Nukescripts folder rather than the plugins folder. I'd changed all the links to it, but still didnt work.

Reset all the links and put files into the plugins folder and its working fine.
 
 
# paolo bertoni 2011-12-20 11:00
HI, I'm using the script with NukeX 6.3v4 and Backburner 2008.1.1 and looks like both pc (using windows 7 64bit) are rendering the same frames:
for the first frame one pc gives the error "can't rename .tmp to final" than starts rerendering the file, overwriting the job that the other pc has already done.
can you help me please?
looks like they're not getting the correct task
 
 
# paul charmoille 2014-01-14 10:29
In case someone is having the same error message on a render farm you have to replace the "%%" on the command line job parameters by "%" (or just put %tp2 and %tp3).

It will solve the task dispatching in backburner.
 
 
# siam shukoor 2012-06-26 02:51
Backburner job could not be submitted, error code: 2
See nuke terminal for details.

Do i need to give enviornment variable if then can some one pls provide the path
 
 
# Pengo MArco 2012-06-28 06:07
I have the same problem, using nuke 6.3 and BB 2012 or BB 2013, does somebody have an issue?
 
 
# Pengo MArco 2012-06-28 06:12
console says unrecognized option '-netmask'
 
 
# diogo dubiella 2012-07-04 18:13
Hi! i made a similar program(script) to submit nuke to backburner
You can user if you want! I made today!
http://www.dubi.com.br/page/?p=110
 
 
# tokaji masaaki 2012-11-13 13:18
replace test
cmdText = '%s -JobName:%s -manager:%s -tasklist "%s" -taskname 1 -priority %s %s "%s"%s%s %s -F &#xst;p2,&#xst; p3%s' % (self.backburne rExecutablePath , self.filename, MANAGER, self.taskListPa th, self.n2bPanel.v alue("priority: "), groupString,sel f.nukeExecutabl ePath, renderProxyStri ng, renderNodeStrin g, os.path.normpat h(self.nukeScri ptPath), "%", "%", renderNFRameStr ing)
 
 
# max chan 2013-12-04 16:01
Backburner job could not be submitted, error code: 2
See nuke terminal for details.

Error: Unrecognized option '-netmask'

anybody has gotten this solved ?
I'm using nuke7.0v6 + backburner 2014
 
 
# Matt Richardson 2014-04-14 10:27
I'm getting the same error as a couple of other people:
"Backburner job could not be submitted, error code: 2
See nuke terminal for details."

and the terminal says:
Error: Unrecognized option '-netmask'

Nuke 8.0v1 backburner 2012
 
 
# jeremy beauchamp 2014-04-16 22:56
Backburner job could not be submitted, error code: 2
See nuke terminal for details.

Error: Unrecognized option '-netmask'

anybody has gotten this solved ?
I'm using nuke7.0v6 + backburner 2013
 
 
# paul charmoille 2014-05-06 13:11
Both options -netmask and -jobNameAdjust where deleted since backburner 2013.
You have to remove them from the cmdText variable and check you documentation if you want to replace it
 
 
# siam shukoor 2014-05-09 06:12
nuke to back burner is working fine on machine having a node locked license. i am not able to do network render on a machine having a floating license. how can i make the network render happen in a machine having a floating licence.
 
 
# Ben S 2014-08-22 08:30
working with floating licenses, need to add the "-i".

lazy, so I just added it somewhere here

##compute -p render string
if self.n2bPanel.v alue("proxy mode:") == True:
renderProxyStri ng = " -p -i"
else:
renderProxyStri ng = " -i"
 
 
# jerem jerem 2016-09-01 18:26
First of all, thank to Thorsten Kaufmann !

I search long hours to find what's going on, because isn't working by default. It does not matter , this script over 6 years !
meanwhile backburner to have been updated.


This is what I've change for using Nuke10 & backburner 2016.

- As paul charmoille says :
remove -netmask and -jobNameAdjust

- If you've got Float license :
add -i to renderNodeString.
Should be :
Quote:
if self.n2bPanel.value("render nodes:") == "all":
renderNodeString = ' -xi'
- As paul charmoille says :
replace the "%%" on the command line job parameters by "%" (or just put %tp2 and %tp3).
%stp2 > %s and at this end "%%" > "%tp2"

(do the same for tp3)

Command line backburner

++
 
 
# jerem jerem 2016-09-01 18:54
Quoting jerem jerem:

remove -netmask and -jobNameAdjust

And Remove -port
 
 
# adam jones 2016-10-14 02:42
Hey all

trying to use this with nuke 10.4 and windows ten

I am getting the error cant find cmdJob.exe any pointers
 
 
# Alexander Gawron 2017-01-03 17:11
Hello jerem jerem,
I have followed all your instuctions, but the script still do not work here. Of course, I am a lowest level coder.
Could you please post the whole script, that work with BB 2016 ?

Thank you
Kind regards
 
 
# roshan maharjan 2018-01-07 07:10
can you please tell me how to use it exactly.
 

You have no rights to post comments

We have 2345 guests and 104 members online