AWS Thinkbox Discussion Forums

Multi instanced slaves - best approach

Hi,
We recently started utilizing the option to run multiple slave instances on our render machines, so that we’ll maximize our CPU usage.
The issue we’re having is that on some cases (and render engines) one slave’s job takes 100% of the CPU, and the other instance never begins his task.
We tried to split the CPU affinity between the two, using the “Slave Properties” option in the monitor, but when we did that we started getting the following error:
Error: 3dsmax startup: Error getting connection from 3dsmax: Monitored managed process “3dsmaxProcess” has exited or been terminated.

Disabling one of the slaves fixed the issue, so we’re assuming it’s the multi-instancing + affinity modification that caused it.

Also, I’m not sure if affinity limitation is the right approach here…
If 1 machine has only 1 slave that’s currently rendering, then we’re limiting our CPU usage for nothing…

What is the best thing to do in this situation?

Thanks,
Aviv

3dsMax is a bit of an edge case here as the 3dsMax preference setting is more than likely using ALL your CPU resources:
knowledge.autodesk.com/support/ … F-htm.html

Disabling this setting on each of your machines (it’s in the 3dsmax.ini file), should help, although I’ve found that some 3rd party plugins (incl. renderers) used in 3dsMax are not very clever and you will just be shifting the bottleneck here OR require additional configuration per render engine (NUMA, etc). Generally speaking, 3dsMax hates sharing (it’s the only child, loner type).

On the flipside, 3dsMax is actually really good at using up all your CPU resources as much as possible during the “rendering” stage, especially on farms.

It’s worth having a play as it will depend on the ‘types’ of job you normally put through your farm.

Thing is, sometimes we’re using less threaded render engines (like scanline) or plugins for some passes,
so basically we’re looking for a way to smartly balance the work-load.

What I gather from your answer is that the CPU hogging is a max thing that we can’t really control aside from globally limiting thread usage.

Thanks for the quick reply (and the max joke :slight_smile: )
Aviv.

Correct. You can globally disable the “Multi-threading” checkbox in 3dsMax or via 3dsmax.ini file OR programmatically, enable/disable it as you go by extending our 3dsmax py plugin, depending on job load. Then use Deadline Slave property “Override CPU Affinity” to control thread limit.

However, different renderers & plugins could behaviour differently to this 3dsMax setting, so I would recommend testing for your use case.

Privacy | Site terms | Cookie preferences