Render Manager - Deadline

Written by Mike Owen on .

Deadline_Banner

Written by Mike Owen, Senior TD, Burrows Nvisage - www.burrows.info

In this tutorial, I'll show you how to submit Nuke jobs to the Prime Focus (aka Frantic Films VFX) render management software known as "Deadline".  I will assume that you already have a running PF Deadline installation (runs on ALL OS platforms) and that Nuke is already deployed to your pipeline. (If not, see the following links to download Deadline for eval (your first 2 render slave licences are FREE! and the number of submitting machines is LIMITLESS!):

http://software.primefocusworld.com/software/products/deadline/overview/
http://software.primefocusworld.com/software/products/deadline/download/

To install Deadline for your specific platform, make sure you read the following instructions below:

http://software.primefocusworld.com/software/support/deadline/installing.php

As can be seen in these release notes (v4.1SP1), the Nuke submisison script system has now been converted from TCL to py (although the TCL is still also available in the Deadline repository for anyone running a legacy Nuke version, v4/v5):

http://software.primefocusworld.com/software/support/deadline/releasenotes_4.1sp1.php

Essentially, within the install of Deadline, all the scripts you need to get Nuke submission working have already been written and designed to get you up and running ASAP.  There are 2 main ways of submitting Nuke jobs to Deadline; (i) via the Deadline Monitor, "Submit"..."Submit Nuke Job To Deadline" or (ii) via the integrated application specific (Nuke in this case) py script. I will explain these 2 ways now, however I should also mention that you could write a fully customised submission system in-house if you are in a large pipeline which simply calls the "deadlinecommandbg.exe" which has many arguments for submission into the Deadline queue. See here for the available flags if you need to develop something fancy, like interface Shotgun to automatically submit jobs based on certain sequence/shot queries: http://software.primefocusworld.com/software/support/deadline/command.php

Nuke - Deadline Submission:

Here is a complete overview of how to submit using the 2 ways I mentioned above, which has been directly copied from the Prime Focus Software website. For the most up to date information, please consult the PF website: http://software.primefocusworld.com/software/support/deadline/nuke.php

I strongly recommend checking out the "Custom Sanity Check" function which any studio can enhance to give your Nuke artists the ability to carry out "Pre-Flight" checks BEFORE submission to your farm, thereby saving any wasted processing time. For example, if a Nuke artist submits a job with a 3rd party plugin with limited licensing across the pipeline, then you could check for the [enabled] presence of this particular node in the nuke script and then automatically apply a Deadline [limit group], which a Deadline Admin can setup globally to control the number of render farm machines are pulling a certain licence at any 1 time! Of course, this same licence [limit group] system can be used to control the number of Nuke licences or Tinder, Sapphire, etc that are being used throughout the rendering pipeline. Additionally, you may want to run a "PreLoad.py" script before a Nuke job runs on a render node, to set something like a System Environment variable - consult the main Deadline manual on the PF website on how to achieve this or indeed, you may wish to submit all Nuke jobs with an attached "PreJob.py", "PostJob.py", PreFrame.py", "PostFrame.py" script which runs some in-house code to update an asset management system or internal website for example.

Prime Focus - Deadline Support:

Any other problems, please contact the Deadline support team directly using the official support forum:
http://support.na.primefocusworld.com/index.php

JOB SUBMISSION

Nuke jobs can be submitted from within Nuke or from the Deadline Monitor.

Launch the Submission Script

From the Prime Focus menu in Nuke, select Submit To Deadline. If you don't see this option, see the Integrated Submission Script Setup documentation.

Set Your Submission Options

The general Deadline options are explained in the Job Submission documentation. The Nuke specific options are:

  • Render Threads: The number of threads to use for rendering.
  • Max RAM Usage: The maximum RAM usage (in MB) to be used for rendering.
  • Build: The build of Nuke to force.
  • Submit Each Write Node As A Separate Job: Each write node is submitted to Deadline as a separate job.

Submit Your Job

Click the OK button to submit the job to Deadline.

PLUG-IN SPECIFIC JOB OPTIONS

Many Nuke plug-in options can be modified after submission. These options can be modified from the job's Modify Properties dialog in the Monitor. To get a description of each setting, simply hover the mouse cursor over a setting and a tool tip will be displayed.

PLUG-IN CONFIGURATION

You can configure the Nuke plug-in settings from the Deadline Monitor. While in super user mode, select Tools -> Configure Plugins and select the Nuke plug-in from the list on the left. To get a description of each setting, simply hover the mouse cursor over a setting and a tool tip will be displayed.

INTEGRATED SUBMISSION SCRIPT SETUP

The following procedure describes how to install the integrated Nuke submission script. The integrated submission script allows for submitting Nuke render jobs to Deadline directly from within the Nuke editing GUI. Note that this has only been tested with Nuke version 4.0 and later.

Nuke 4 Script Setup

  • Copy [Deadline Repository]/clientSetup/Nuke/SubmitToDeadline.tcl to [Nuke Install Directory]/plugins.
  • Create a menu item in the Nuke UI by adding the following line to the menu.tcl file in the Nuke plugins folder:
  • 1
    
    menu "Prime Focus/Submit To Deadline" SubmitToDeadline

Nuke 5 Script Setup

  • Copy [Deadline Repository]/clientSetup/Nuke/SubmitToDeadline.tcl to [Nuke Install Directory]/plugins.
  • Create a menu item in the Nuke UI by adding the following lines to the menu.py file in the Nuke plugins folder:
  • 1
    2
    
    pf = menubar.addMenu("&Prime Focus")
    pf.addCommand("Submit To Deadline", "nuke.tcl( \"SubmitToDeadline\" )" , "")

Nuke 6 Script Setup

  • Copy [Deadline Repository]/clientSetup/Nuke/SubmitToDeadline.py to [Nuke Install Directory]/plugins.
  • Create a menu item in the Nuke UI by adding the following lines to the menu.py file in the Nuke plugins folder:
  • 1
    2
    3
    
    import SubmitToDeadline
    pf = menubar.addMenu("&Prime Focus")
    pf.addCommand("Submit To Deadline Python", SubmitToDeadline.main, "")

Custom Sanity Check

Nuke 4 and 5 Sanity Check A CustomSanityChecks.tcl file can be created alongside the main SubmitNukeToDeadline.tcl submission script (in [Deadline Repository]\submission\Nuke), and will be evaluated if it exists. This script will let you set any of the initial properties in the submission script prior to displaying the submission window. You can also use it to run your own checks and display errors or warnings to the user. Here is a very simple example of what this script could look like:

1
2
3
4
5
set department "The Best Department!"
set priority 33
set concurrentTasks 2
 
message "This is a custom sanity check!"

Nuke 6 Sanity Check A CustomSanityChecks.py file can be created alongside the main SubmitNukeToDeadline.py submission script (in [Deadline Repository]\submission\Nuke), and will be evaluated if it exists. This script will let you set any of the initial properties in the submission script prior to displaying the submission window. You can also use it to run your own checks and display errors or warnings to the user. Here is a very simple example of what this script could look like:

1
2
3
4
5
6
7
8
9
10
import nuke
import DeadlineGlobals
 
def RunSanityCheck():
    DeadlineGlobals.initDepartment = "The Best Department!"
    DeadlineGlobals.initPriority = 33
    DeadlineGlobals.initConcurrentTasks = 2
    nuke.message( "This is a custom sanity check!" )
 
    return True

Note that if the RunSanityCheck method returns False, the submission will be canceled.

CROSS-PLATFORM RENDERING CONSIDERATIONS

In order to perform cross-platform rendering with Nuke, you must setup Mapped Paths so that Deadline can swap out Read Node and Write Node file paths where appropriate. You can access the Mapped Paths Setup in the Monitor while in super user mode by selecting Tools -> Configure Repository. You'll find the Mapped Paths Setup in the list on the left.

FAQ

Which versions of Nuke are supported by Deadline?

Nuke 4.0 and later are supported.

Comments   

 
0 # Mohamed Selim 2010-10-12 01:22
Hi

Is it worth using Deadline (speed wise) over a network with no fiber cards or something like a Xsan?
 
 
0 # Mike Owen 2010-10-12 04:34
Hello.
Deadline works fine over any network, which is at least 10/100BaseT. The system including the Deadline slaves allows for global and individual "throttling" so even if only some of your network/machine s are on a fast or slow network connection, they can be identified and hence don't fail due to lost data i/o packets or such like, network connectivity issues.
In terms of server design for the bets setup for Deadline or indeed to understand more about the Deadline architecture so you can make an informed decision about your own studio setup, please consult the Deadline online manual:
http://software.primefocusworld.com/software/support/deadline/contents.php
and also check out this Deadline Scaling White-paper discussing scaling for small studios all the way to HPC enterprise level solution:
http://software.primefocusworld.com/software/products/deadline/download/
Regards,
Mike
 
 
0 # djati waskito 2010-12-22 12:42
hello Mike,

when i started the deadline monitor. there is warning " deadline configuration error: Given repository path, "," does not exist or is not accessible from this computer. I tried with link on my comp/share/dead line repository--but it still got the error message--do you know how to configure this ?

thanks Mike
 
 
0 # Bruno-Pierre Jobin 2016-05-05 19:56
Hello Mike,

I'm looking for a way to check by default the "render selected nodes only" inside the "Submit to deadline" dialog. I'm using Deadline V6 and Nuke 9.0v7.

Is it doable?
Thanks!
 
 
0 # Daniel Emre 2023-07-27 20:16
go to "C:\DeadlineRep ository\submiss ion\Nuke\Main\S ubmitNukeToDead line.py" Open "SubmitNukeToDe adline.py" and find the line "DeadlineGlobal s.initSelectedO nly = False # type: ignore" > and change it to "DeadlineGlobal s.initSelectedO nly = True # type: ignore" >
 

You have no rights to post comments

We have 2786 guests and 156 members online