Scheduler "Total Slots" for Single CPU - Does it Matter?

   2144   4   4
User Avatar
Member
71 posts
Joined: Nov. 2017
Offline
I'm using TOPs to speed up tasks on my 2019 Mac Pro. I have a 24 core, 48 thread CPU. If I want to fully utilize my CPU to crank out as many simultaneous single-threaded tasks as possible, which is the correct selection:

Equal to 1/4 of Total CPU Count - This label certainly doesn't sound like the correct selection, but it seems to max out my CPU regardless, though it fires off fewer batches at once.

Equal to CPU Count Less One - This just seems nonsensical on a one-CPU machine, though it also maxes out my CPU usage. I'm honestly not sure what this one does in my scenario.

Custom Slot Count (set to 48) - This seems like the obvious choice, but it is highly unstable, frequently causing kernel panics (working with the bug report team on that) or crashing Houdini.

I'm guessing these labels make more sense in the multi-machine render farm scenario that PDG was built for; but I quite like TOPs for speeding things up and would love to know how they translate to a single machine scenario.

Thanks,
Joe
User Avatar
Member
603 posts
Joined: Sept. 2016
Offline
“CPU” here refers to logical core, not physical socket. So for your machine “1/4 of Total CPU Count” works out to limiting the concurrent jobs to 12.
User Avatar
Member
71 posts
Joined: Nov. 2017
Offline
chrisgreb
“CPU” here refers to logical core, not physical socket. So for your machine “1/4 of Total CPU Count” works out to limiting the concurrent jobs to 12.

Thanks for the response. I have approximately 1 million follow up questions. I’d love to clarify these once and for all so I can use TOPS with confidence.

So “slot” here is referring to a job. So if I set Custom Slot Count to 24, it will run 24 jobs concurrently, but not necessarily use 24 cores (i.e. one logical core per job)? It’ll use whatever combo is best to get the job done most efficiently?

Is the SideFX recommendation for single-CPU scenarios to leave it at the default of “1/4 of Total CPU Count” for most jobs? I assume this allows a few cores to be thrown at each job as needed.

Is there ever a benefit to using Custom Slot Count at 24 in my scenario? What about going above 24? Is that illogical?
User Avatar
Member
7025 posts
Joined: July 2005
Offline
I can't speak for SideFX but my experience on a 32 core machine (64 virtual) is to use a custom value of 60. However, be warned about RAM since each job will use at minimum 1gb or so, and likely higher depending on what you are processing.

I have 128gb so I have a fair bit of RAM room, and also my jobs tend not to be heavy disk IO. All these things factor in to the “max efficiency” balance.

So, the 32 cores will be “full” all the time, and the virtual cores are adequate for disk IO, loading in the HIP file etc per frame (or job).

I recommend the new PDG Services as well, which makes jobs execute _much_ faster as well. If you're using Services, then the number of the “Pool size” is essentially replacing the Slot Count. So I set my Pool Size to 60, unless RAM becomes a concern.

hth

Cheers,

Peter B
User Avatar
Member
192 posts
Joined: April 2015
Offline
The HDA Processor docs say:
"If the node is unable to connect to the service, HDA Processor will cook in regular mode and add a warning to the node."

What if you have set the Pool Size of the services as high as your Total Slots count, is it still able to 'convert' the service-process into a normal process?
Or do you have to have a Pool Size less that the Total Slots for the regular mode to be available?

Or what if you want to cook some jobs/TOP nodes things with the services, and some normally (because incompatible), how do we choose the Pool Size?

(Thanks,)
Edited by OdFotan - Oct. 29, 2021 11:43:34
  • Quick Links