Nuke Workstation Licenses

Hey,

We are in a situation where we have some render licenses, that we max out a lot of the time. We also have some workstation licenses, that are in use most of the time by artists but are not part of the render farm. We would like to utilize the workstation licenses more.

The workstation licenses are in use at normal work hours, with an hour for lunch, by the artists. Some days not all the workstation licenses might not be in use, as one or two of the artists aren’t in the studio. How might we utilize the licenses for Deadline? Anyone have a similar situation, and using workstation licenses to render?

We currently have a limit group for the render licenses, but would we need another limit group for workstation licenses?

Lastly how would Deadline know if a workstation license is in use by an artist?

Any guidelines or suggestions are very welcome:)

Has anyone looked into querying RLM license server for workstation licenses?

We don’t know!

Yes

Deadline currently doesn’t have the ability to query a license server such as RLM or Flexlm. The tricky part here is making something like this “production/enterprise grade” quality. A number of edge cases/situations could arise. Multiple license servers being used in same or different locations. Too many/too fast queries to a RLM or Flexlm license server have been known to return a bad NULL result or misleading information or worse still, lock up a license server (back in the day >5 years ago). A scheduling system would also be required, as you would want to ensure a certain number of GUI licenses are available during certain working hours. Finally, and this is probably the deal breaker, if you configure the farm to query and checkout a workstation license if free, then you will get artists complaining they can’t checkout an interactive license on their workstation. In which case, you limit the number of workstation licenses that can be ‘flexy’ between workstation/farm use, which really is the same difference as just configuring some slaves when active to pull an interactive license.

So, this is not a trivial problem to solve.

With regard Nuke; we have a plugin config setting to pull workstation (interactive) licenses for particular slave names (enter your workstation slave names here):
docs.thinkboxsoftware.com/produc … figuration

Using IDLE Detection or a Secondary Slave, you could run up these slaves during lunchtime ONLY and they would attempt to pull a workstation license if any are available. A limit group could be created (whitelist your workstations only) to handle the number of workstation licenses you own, but alas, you can’t query your license server to see how many are available directly from Deadline.

A hack solution whilst I muse over this subject, might be to create an event plugin py script executed by say “OnSlaveStartingJobCallback” event, which then uses the RLM or Flexlm util binary to query your license server and based on the result, edit the limit group stub count. This is a bit iffy, as the stub count is carried out before this event callback fires, so you will probably get a few errors along the way, but it might work. DISCLAIMER: I haven’t tried this, but it might be worth a play to see how far you can go with this.

Alternatively, have a cron job which edits the nuke license limit number for lunchtimes and use slave scheduling to startup your slaves on your workstations at lunch time only, when the license limit group is higher. Of course, ensure all the workstations are configured in plugin config to pull an interactive license. If you need your workstations to also potentially pull normal render node licenses during the night, then use 2 x slaves per machine, one for lunchtime rendering and the other for normal/overnight rendering.

Hey Mike,

Thanks for the suggestions :smiley:

We are currently looking at using the Nuke plugins interactive licenses list, but our main problem is with limits. We have a certain amount of render licenses, so we limit the amount of slaves with the stub limit. If we have another limit where we define which machines can pull interactive licenses, the whole job gets limited to only those machines.
On the other hand if we just increase the stub limit, we can’t be sure that we aren’t getting pure render licenses machines, resulting in a licenses failure.

How would you suggest we manage this?

If your main intention is to try and efficiently use up a set portion of your gui licenses during off-peak hours, then the ‘cron’ job approach as I mentioned before is going to be your best bet currently.

Is there any way of modifying the limits behaviour?

Like I could query whether the machine requesting the limit, were in the interactive Nuke plugin list, it would ignore the limit and not be counted against it either?

You can use the white/blacklisting or exclude in the “limit” to give this ability, so that only certain machines ‘count’ towards a limit or not.
docs.thinkboxsoftware.com/produc … #new-limit
or via our Scripting API:
docs.thinkboxsoftware.com/produc … group.html

Thank Mike!

Slave exclusion from the limits should do us well for now:)