No effect with "Override CPU Affinity"


#1

Hey!
While writing my first my first deadline-event-script to enable/disable the “Override CPU Affinity” based on the user, several users in my company told me that turning on the “Override CPU Affinity” and assign some threads of the cpu doesn’t have any effect: the render job still eats up to 100% of the cpu. I also tried it by my self and can confirm that the settings has no effect.

Do I have to setup in the Reposity-Settings?

Cheers!
Simon


#2

Hey Simon,

That’s a per-slave setting. How are you enabling / disabling it? Does manually changing it in the Slave settings have any effect?

Thanks,

Edwin


#3

Hey Edwin,

I’ve tried it with the “Local Slave Controls” (opened over the Deadline Launcher) but also as “superuser” via the “Modify Slave Properties” context menu - as unprivileged user which also started the slave/launcher or running as service. I’ve also tried it as user with admin-rights (start launcher/slave) and changed the settings… The running 3dsmax process stays at 100% load and is not changing the affinity even after a restart of the slave…

Cheers!
Simon


#4

This would be the first non-Mac instance of that failing… OS X doesn’t support CPU affinity at all.

I was told that the CPU affinity should just update periodically without restarting the Slave, but as a test you should have artists try restarting the program. If that works, I can open a dev issue for that one.

As far as permissions, the Slave sets its own CPU affinity and then the processes it starts inherit that setting so user permissions shouldn’t play a role here.


#5

Thank you for the note with the inheritance.

I’ve done the following test-sequence:

  • submit Job
  • set “CPU-Affinity” to all threads over the “Local Slave Controls” via Launcher
  • renderjob starts -> CPU load up to 100%
  • set “CPU-Affinity” to 4 threads over the “Local Slave Controls” via Launcher
  • wait 1 minute and check affinity through taskmanager: 3dsmax.exe (100% load) -> all threads; deadlineslave.exe -> 4 threads
  • restart the slave (restart the deadline-service - but it’s the same behavior as running the slave as a normal artist-user)
  • check the affinity through taskmanager again: 3dsmax.exe -> 4 threads; deadlineslave.exe -> 4 threads
  • wait 1 minute and check again: 3dsmax.exe -> all threads; deadlineslave.exe -> 4 threads
  • kill 3dsmax.exe and wait for restart
  • check the affinity through taskmanager: 3dsmax.exe -> 4 threads; deadlineslave.exe -> 4 threads
  • wait 1 minute and check again: 3dsmax.exe -> all threads; deadlineslave.exe -> 4 threads

So, as far as i can see/understand: The 3dsmax.exe started by the slave first inherits the CPU affiliation but while loading the job something overwrites/resets it again.

Attached you can find the slavelogs after a restart of the service.

Cheers!


#6

Ah! Yes of course. Arnold, V-Ray and a few other renderers will reset the affinity when they start up. We added additional parameters to the different Deadline plugins to request that the renderers don’t go overriding things.

I believe those changes were added in a few service packs ago in Deadline 10. I’m having a little trouble finding the thread at the moment, but if you’re on an earlier version of 10 I would suggest upgrading to the latest and giving it another try.

Download: downloads.thinkboxsoftware.com
Docs: https://docs.thinkboxsoftware.com/products/deadline/10.0/1_User%20Manual/manual/upgrading.html#minor-upgrades-or-downgrades


#7

Not to steal the thread, but I just wanted to confirm that the new function under Configure Plugins “LImit Threads to CPU Affinity” totally works now in versions above 10.0.15. Thanks so much!


#8

@Rhagen: :smiley: Music to my ears!

@Simon: To save you some time, I don’t believe the feature Edwin and Rhagen mentioned (“Limit Threads To CPU Affinity”) has been added to 3dsmax (probably because we were unaware that it is now also resetting it’s affinity). What version of 3dsmax, and what renderer are you using? This is something we can look into adding to a future Deadline version.

Cheers


#9

@mepp
That’s good to hear. While reading the previous two post I was getting nervous because we already running version 10.0.15 :smiley: Currently we are using 3ds max 2018.4 (20.4.0.4254) and VRay 3.60.04 - but we’re preparing to switch to 2019 and VRay Next in next few months.

Cheers!


#10

Hey,
installed the new 10.0.17.4 Update - read so much about the “CPU Affinity” in the changelog, but not for 3dsmax. That feature for 3dsmax didn’t make it in that release?

Cheers!


#11

It doens’t seem to be patched just yet. I’ve bumped the dev team to see what the effort is going to be to implement this one.

Max is a special beast that taps into both the C++ as well as MaxScript APIs, so I’m not sure which will be required here. If it’s C++ it becomes more difficult to handle.


#12

Hi!
Any news on this? …it’s seems to be C++ :slight_smile:

Cheers!


#13

I’ve bumped internally on your behalf. This one’s been open awhile.


#14

… and it’s still open?! Installed the new 10.0.20.2 Version but the problem still exists: the 3dsmax process does not inherit the CPU affinity from the deadlineslave process and takes 100% of cpu.

Obviously this is not a high priority issue - which I can understand, because everybody wants to render as fast as possible - but is there at least a roadmap or any kind of information/forecast?

Cheers!


#15

I hear you. The issue here is actually that Max (and other Autodesk products like Maya and now Arnold) reset the affinity once we’ve overridden it. You can watch along in Task Manager as I believe the Sandbox (not listed in your earlier tests) still has the desired affinity set even once Max start, and during Max’s startup you’ll see it go from the Deadline-set affinity back to all cores. I’ve definitely done so with Maya, and core-code is involved here so it will be the same mechanism for the majority of applications that Deadline starts up.

I’ve bumped the dev team again for you. It’s difficult for this to gain priority mainly because the number of companies affected by it is low. Usually it is only those who are using their workstations to render projects during working hours.


CPU Affinity don't work on 3dsmax 2019
Slave Scheduler not working
#16

Soo… new version released - thanks for that :wink:

I’m here to bring this back to the top… :slight_smile:


#17

Is anything happening with that issue?

Cheers!