Page 1 of 1

Force client to spawn Cores at given Priority

Posted: Sat Jul 28, 2018 5:18 pm
by schertt
Here's my situation, and off the bat I'll recognize it's a little odd. Right now I have a single GPU folding pretty much non-stop; concurrently, my CPU spends a lot of time running Handbrake (video encode/decode). Typically, Handbrake runs at Low priority, essentially just soaking up whatever is left after scheduling everything else. The problem is that, even when the Folding Core priority option set to "Slighty Higher", each job's Core is still spawned at Low priority. This becomes a problem for me because within the same priority group, Handbrake apparently takes precedent and ends up suffocating F@H's relatively small CPU need.
I don't really have any other options than Handbrake and it has no options to pick the number of cores it uses. I could affine Handbrake to stay off a single core, but that ends up wasting > 50% of the core's time because again F@H's need is so small. So I'm wondering if there's a way to force the Wrapper to spawn Cores at a specific priority, in my case "Below Normal". That would keep F@H clear of Handbrake without wasting any cycle time. Thanks!

Re: Force client to spawn Cores at given Priority

Posted: Sat Jul 28, 2018 11:12 pm
by bruce
Like Handbrake, FAH was designed to soak up all available resources after more important jobs have been given priority. Balancing the needs to two such CPU-limited jobs is a real challenge. I've seen a lot of discussion on such issues and a few FAH enhancements have been submitted, in the long-run, nothing is really satisfactory.

You didn't specify Windows/Linux/OS-X (even though your terminology sounds rather Windows-like) so I can't offer any specific solutions, but it's the job of the scheduler in your OS to allocate resources, given whatever settings the two software packages provide. All three OSs provide advanced tools that are SUPPOSED to allow you to manage such resource conflicts. Also, there are some 3rd party tools that have been used advantageously for each OS.

I don't see a hardware description, but your CPU can probably process with multiple concurrent threads. A FAH GPU generally needs the resources of only one of those threads so as you say, maybe Handbrake needs to be limited to the others. (FAH can specify the maximum number or threads that can be allocated to a CPU slot.)

By the way, the enhancement requests https://github.com/FoldingAtHome/fah-issues/issues/800 and https://github.com/FoldingAtHome/fah-issues/issues/978 have been languishing without attention for a LONG time. FAH Development operates with VERY limited resources.

Re: Force client to spawn Cores at given Priority

Posted: Sun Jul 29, 2018 5:35 am
by schertt
Hi Bruce, thanks for the reply. OS is Windows 10 Pro, hardware is an i5-6500/R9 390 on an MSI Z170A KRAIT. I used to use Prio when I was on Win7 but 10 saw fit to end that. That level of basic simplicity was literally all I needed and it's been difficult to find a similar alternative. I'm checking out Process Hacker at the moment which is way more than I need but better than nothing. Also thanks for pointing me to the github.