Deadline#

This plugin enables Prism to submit render and other jobs to the AWS Deadline rendermanager.

Jobs are usually submitted from the render or export states in the Prism State Manager.

Different Prism plugins like Houdini or USD can have additional options available for job submissions. See the plugin pages for more details.

../../_images/deadline.jpg

Project Settings#

The following settings are available in the Project Settings in the “Deadline” category:

Submit scenefiles together with jobs#

When enabled, a copy of the scenefile will be submitted to Deadline together with the job.
This helps to avoid that the scenefile gets modified by a user while it’s being rendered on the farm.
When using variables in the scenefile to load or save files relative to the scenefile location, this setting should be disabled.

Use Script Dependencies for Scene Description Jobs#

This setting defines, which type of dependency is used when submitting multiple dependent jobs to Deadline.
When disabled, normal job dependencies are used. When one job is completed, the next job gets released and can be rendered.
When enabled, a script dependency is used, which detects which frames of the first job are completed and releases the matching frames of the second job. That way the second job can start before the first job is completed.
The script dependencies can provide a more efficient and faster workflow, but are more difficult to debug.

Pool Presets#

Instead of requiring artists to set the job pool, secondary pool and group for every job, it is possible to create presets for these 3 settings.
When enabled you can add a new preset, give it a name and set the pool, secondary pool and group for this preset.
Instead of 3 dropdowns for these settings, the artists will see only one dropdown for the preset in their Deadline submission settings.

Job Dependencies#

Job dependencies are an important feature when submitting multiple jobs to Deadline, which rely on each other.

For example you can submit a job, which exports USD files from Houdini, a second jobs which renders the USD without using a Houdini license and a third job which deletes the previously generated USD files.
Prism will configure the job dependencies between these jobs automatically.
You can view these dependencies in the Deadline monitor in the “Job Properties” under “Dependencies” -> “Jobs” or “Scripts” (depending on the type of job).

Other cases where Prism submits dependent jobs are when a master product version needs to get updated after a Houdini simulation was cached or when a media conversion is configured to run after a render job.

Configuring Deadline to run Python Jobs (for Deadline versions <10.3)#

Prism submits Python jobs to Deadline in different situations, for example to update master versions (if enabled in the projects settings) or when rendering using Redshift or 3Delight scenedescriptions. Python Deadline jobs will be submitted from Prism as Python 3.9 jobs. Older versions of Deadline (<10.3) don’t support Python 3.9 jobs and will create errors on these Python jobs. These errors can be found in the log, which can be viewed in the “Job Reports” panel in the Deadline Monitor.

../../_images/DeadlinePythonKeyMissing.jpg

To add support for Python 3.9 to the Python Deadline plugin, this file in the Deadline repository needs to be modified: \plugins\Python\Python.param

This file contains a section for each Python version. In a text editor a section for Python 3.9 can be added to the bottom of the file:

[Python_Executable_3_9]
Type=multilinemultifilename
Label=Python 3.9 Executable
Category=Python Executables
CategoryOrder=0
Index=13
Default=C:\Python39\python.exe;/usr/bin/python3;/usr/bin/python
Description=The path to the Python executable. Enter alternative paths on separate lines.

A restart of the Deadline Monitor is needed after editing and saving this file. In the “Tools” menu in the main menu bar in the Deadline Monitor the “Super User Mode” needs to be enabled. Then in the same menu the option “Configure Plugins…” will show up. In the new window that opens select the Python plugin and scroll down to the “Python 3.9 Executable”. Here you have to enter the path of a Python 3.9 executable. That can be from a custom Python installation or the path to the Python executable included in Prism.

../../_images/DeadlinePythonConfig.jpg

Confirm the window and now the Python Deadline jobs will be executed without errors.

Configuring Deadline to run jobs with unsupported Houdini versions#

When submitting jobs from Houdini to Deadline it is important to check if the installed Deadline version supports the used Houdini version. This can be done by consulting the official Deadline changelog here or checking the content of the \plugins\Houdini\Houdini.param file in the Deadline repository.

When submitting jobs from an unsupported Houdini version, the jobs will error and in the “Job Reports” panel you will see the following error message:

../../_images/DeadlineHoudiniKeyMissing.jpg

In some cases it can help to update Deadline to the latest version. But after a new Houdini version gets released it can take months until Deadline gets updated to officially support that Houdini version. Waiting months for a new Deadline version is usually not an option and luckily there is a simple way to add support for any new Houdini version.

Alternative solution#

While the solution in the previous section is recommended, there is also an alternative solution without modifying a file in the Deadline repository.

The environment variable PRISM_DEADLINE_HOUDINI_VERSION can be set to a Houdini version like “18.5” or “19.0”. If that environment variable is set at the time of the job submission in Houdini, this version will be set in the job settings and Deadline will try to render that job using this Houdini version. By doing this, Deadline will render the job using a supported Houdini version like 18.5 even though it was submitted from an unsupported version like 19.5. As a last step we need to point the Houdini 18.5 configuration in Deadline to the Houdini 19.5 executable so that Deadline actually uses the executable of our Houdini 19.5 installation.

Example: Assuming Houdini 19.5 is installed and Deadline 10.1, which supports officially Houdini versions up until 19.0. In the Prism User Settings in the “Environment” tab we can set the variable PRISM_DEADLINE_HOUDINI_VERSION to “18.5”. Now we can submit our job from Houdini to Deadline for example using the Prism LOP File Cache HDA. Deadline will try to render this job using Houdini 18.5 and will error because we only have Houdini 19.5 installed. In the Deadline Monitor we can enable the “Super User Mode” in the “Tools” menu. Then we can open the “Configure Plugins…” window from the “Tools” menu. When selecting the Houdini plugin we can see the executable configuration for all supported Houdini versions. In the “Houdini 18.5 Hython Executable” field we add the path to the bin/hython.exe in our Houdini 19.5 folder. Now we can save the configuration and Deadline will render the job successfully.

The environment variable PRISM_DEADLINE_HOUDINI_VERSION can be set in the Windows system settings of the workstation or in the Prism User or Prism Project Settings.

Troubleshooting#

The Pool and Group dropdowns in the State Manager are empty or don’t show my Deadline Pools/Groups#

Solution:
Go to the Prism Project Settings -> Deadline and click the “Refresh Pools/Groups” button.
Explanation:
The names of the Deadline Pools and Groups get cached in the Prism Project Config for improved performance.
This causes that changes to the Pools/Groups in Deadline are not immediately visible in the Prism State Manager.
To solve this problem, the cached Pools and Groups in the project config need to be refreshed.

Environment Variables#

The Deadline plugin can be controlled using the following environment variables:

Name

Description

PRISM_LAUNCH_ENV

Can be set to a json string, which defines environment variables, which will be added to submitted Deadline jobs (e.g. {“myenv”: “myval”})

PRISM_DEADLINE_MASTER_UPDATE_PRIO

Sets the job priority for jobs, which update master versions (e.g. 75, default: 80)

PRISM_DEADLINE_PYTHON_VERSION

Sets the Python version for Python Deadline jobs (e.g. 3.9, default: 3.11)