Limits and Machine Limits

Overview

In order to support rendering applications that use floating licensing to limit the number of clients rendering at any one time, Deadline supports the ability to create Limits to manage this restriction. When creating a Limit, be sure to set the limit to the number of network licenses you have for the product.

For example, if you have 20 nodes in your render farm and only 10 licenses of Nuke, you can create a Nuke Limit with a limit of 10. During rendering Deadline will ensure that no more than 10 machines are rendering Jobs associated with this Nuke Limit at any given time. Because of this, you never have to worry about licensing issues.

Machine Limits function similarly, but are on a per-Job basis. Instead of limiting how many Slaves can render a group of Jobs, they limit the number of Slaves that can render one particular Job. This is useful if you want to prevent a job from potentially taking up the entire farm.

Plugin Limits ensure 1 or more limits are always applied to a certain application plugin, no matter how many jobs are being processed.

Job Machine Limits

Machine Limits are a per-Job option, and can be managed through the Job’s Properties window, which you can get to by right-clicking on the Job and selecting ‘Modify Job Properties’. More information on the available Machine Limit settings can be found in the Controlling Jobs documentation.

../_images/jp_machine_limit.png

Plugin Limits

Plugin Limits are a per-Plugin (application) option, and can be managed through Configure Plugins… under Tools when in Super User mode. Plugin level limits via the Set Limits button allows you to assign one or more limits to always be applied to a certain application plugin. This ensures that limit is applied to all jobs that process using that specific plugin in your farm.

../_images/limit_plugin.png

Limits

Limits can be managed from the Limits panel in the Monitor while in Super User mode (or as a user with appropriate User Group privileges). This list shows all the Limits that are in your Repository. It also displays useful information about each Limit, such as its name, its limit, and the number of Limit stubs that are currently in use. You can access many options for the Limits (listed below) by right-clicking on them, and you can create a new Limit by clicking on the [+] button in the Limit list’s toolbar.

../_images/limit_right_click.png

If the Limits panel is not visible, see the Panel Features documentation for instructions on how to create new panels in the Monitor.

New Limit

Use this option to add a new Limit to your Repository.

../_images/new_limit.png

You can modify the following settings for the new Limit:

Name

The name of the new Limit. Note that this setting cannot be changed once the Limit has been created.

Usage Level

The level at which a Limit Stub will be checked out. ‘Slave’ is the default, and will require each Slave to acquire a Stub; if ‘Machine’ is selected, only a single Stub will be required for all Slaves on the same machine. Conversely, if ‘Task’ is selected, Slaves will try to acquire one Stub per concurrent Render Thread. Note that this setting cannot be changed after Limit creation.

Limit

The maximum number of simultaneous uses that this Limit can support at any given time. What counts as a ‘use’ is based on the usage Level (will be either on a Machine, Slave, or Task level). Setting the Limit to 0 no longer signifies that the Limit is unlimited.

Unlimited Limit

If this flag is set, then the Limit can be used by an unlimited number of Slaves. Setting this flag does not allow for the use of Overage and will also ignore the Limit value.

Release at Task Progress

If enabled, Slaves will release their Limit stub when the current Task reaches the specified percentage. Note that not all Plugins report Task progress. This cannot be enabled if the limit is using Usage Based Third Party Licensing.

Limit Overage

When all regular Limit Stubs are checked out, Slaves will be able to check out additional Limit Stubs up to the Limit Overage amount. Usage for Overage Limit Stubs is always Slave level, regardless of what the Limit’s Usage Level is set to. If you want all Slaves to check out this limit through Overage, set the Limit field to zero.

Use Usage Based Third Party Licensing

If enabled, Slaves that check out a Limit Stub through Overage will render the job using Usage Based Third Party Licensing. For more information on how to use this feature, see Third Party Usage Based Licensing.

License Application

If Usage Based Third Party Licensing is enabled, this specifies the application for which the Slave will need to acquire a License in order to render jobs using this Limit. There can only be one Limit for any particular application. That is, no two limits can be assigned the same License Application.

Whitelisted/Blacklisted Slaves

If Slaves (or Machines, depending on Level selected above) are on a Blacklist, they will never try to render Jobs associated with this Limit. If Slaves/Machines are on a Whitelist, then they are the only ones that will try to render Jobs associated with this Limit. Note that an empty blacklist and an empty whitelist are functionally equivalent, and have no impact on which machines the job renders on.

Slaves Excluded From Limit

These Slaves (or Machines, depending on Level selected above) will ignore this Limit and won’t contribute to the Limit’s stub count. This is useful if you are juggling a mix of floating and node-locked licenses, in which case your machines with node-locked licenses should be placed on this list.

Clone Limit

This option allows you to create a new Limit while using an existing Limit as a template. It will bring up a dialog very similar to the one pictured in Create Limit, with all the same options. This option is handy if you want to create a Limit that is very similar to an existing one, but with a small variation.

Modify Limit Properties

This option allows you to edit the settings for an existing Limit. All of the settings described in the New Limit section above can be changed except for the Limit’s Name and Usage Level, which cannot be changed once the Limit has been created.

Reset Limit Usage Count

Sometimes a Limit stub will get orphaned, meaning that it is counting against the Limit’s usage count, but not machines are actually using it. After a while, Deadline will eventually clean up these orphaned Limit stubs. This option provides the means to delete all existing stubs immediately (whether they are orphaned or not), which will require Slaves to acquire them again.

Delete Limit

Removes an existing Limit from your Repository. Any Jobs associated with deleted Limits will still be able to render, but they will print out Warnings indicating that the Limit no longer exists.

Limits and Job Scheduling

Although Limits and Job Machine Limits aren’t priority-based like Pools, they do have an impact on job scheduling. Here are some examples.

Limits

  • If a job is assigned to a Limit, and that Limit is currently maxed out, the job will not be picked up by any additional slaves.
  • If a job is assigned to a Limit, and that Limit has a whitelist, the job will only render on the slaves in that whitelist.
  • If a job is assigned to two Limits, and one of those Limits is currently maxed out, the job will not be picked up by any additional slaves. This is because a slave must be able to acquire all Limits that the job requires.
  • If a job is assigned to two Limits, and one of those Limits has slave_1 on its blacklist, slave_1 will never pick up the job. This is because a slave must be able to acquire all Limits that the job requires.

Job Machine Limits

  • If a job has a Machine Limit greater than 0, and that Limit is currently maxed out, the job will not be picked up by any additional slaves.
  • If a job has a whitelist, the job will only render on the slaves in that whitelist.