CPU Priority and FAH interruptions

Moderators: Site Moderators, FAHC Science Team

Post Reply
Aurum
Posts: 296
Joined: Sat Oct 03, 2015 3:15 pm
Location: The Great Basin

CPU Priority and FAH interruptions

Post by Aurum »

I've been using Prio to "remember" the Priority I set in Task Manager. When a new WU loads it defaults back to Idle or Low. One day after upgrading to 7.4.16 it said I did not have authorization to change the Priority. I want to be able to specify my own Priority and not have FAH force the lowest setting on me.
In Science We Trust Image
bruce
Posts: 20910
Joined: Thu Nov 29, 2007 10:13 pm
Location: So. Cal.

Re: GPU underutilization

Post by bruce »

I'm not sure I understand. These answers are based on my guessing at what you meant.

1) No, you can't break up a large protein into two smaller jobs. Assuming you did, atoms in this "half" of the protein would no longer feel the influence of bonds to atoms in the other "half" or the attraction effects of the charge of those atoms. As the atoms move, the forces change, including changes to the positions of atoms in the other half. You'd calculate the motions of one half and then suspend processing while the positions in each half are shared with the other half. Throughput would go way down because You'd be spending most of the time transferring data rather than computing new data.

2) A protein aimed at a GPU with, say, 800 shaders can be processed on a GPU with 200 shaders or 2000 shaders It's difficult to assign that same job to a system with 8 CPUs or a GPU with 50 shaders without terribly distorting the deadlines and/or the effects of that trajectory wasting large blocks of time because it happened to be assigned to someone with limited resources. The same is true for CPU jobs ... which have to work on a system with a single threaded CPU up to some number .. typically a max of 16 or 24 ... because those same WUs break if assigned to a 48-core system. Folding proceeds most effectively if the protein can be assigned to donors with a range of resources within a few standard deviations surrounding some average turn-around time.

You seem to be concerned about CPU tasks, too, and this is a topic about GPUs. Nevertheless CPU priority is an important consideration.

3) FAH assigns the lowest priority to CPU jobs so it doesn't interfere with foreground processing (whatever you bought your computer to do). If you're system is running a lot of medium-low priority tasks, consider suspending them or lowering their priority. If FAH is the only thing running, the priority setting is meaningless High priority is NOT faster that low priority (except when something else more important needs to run.)

EDIT:
1b) There are lots interesting proteins that are too big to study, even with today's biggest/fastest GPUs (but as technology moves forward, so will FAH's science). Often a local study will provide sufficient information to be useful, such as the C-terminal region of P53
Aurum
Posts: 296
Joined: Sat Oct 03, 2015 3:15 pm
Location: The Great Basin

Re: GPU underutilization

Post by Aurum »

I have 14 folding rigs and need to specify my own priority. The overriding philosophy to design for the casual background folder hampers the ability of dedicated folding rigs to perform at their peak. GPUs may be underutilized because unimportant things are constantly interrupting CPUs set to too low a priority and they are not keeping the GPUs fully fed.
Last edited by Aurum on Tue Jan 24, 2017 8:26 pm, edited 1 time in total.
In Science We Trust Image
foldy
Posts: 2061
Joined: Sat Dec 01, 2012 3:43 pm
Hardware configuration: Folding@Home Client 7.6.13 (1 GPU slots)
Windows 7 64bit
Intel Core i5 2500k@4Ghz
Nvidia gtx 1080ti driver 441

Re: GPU underutilization

Post by foldy »

Aurum wrote:GPUs may be underutilized because unimportant things are constantly interrupting CPUs set to too low a priority and they are not keeping the GPUs fully fed.
The full CPU core running to fed the GPU is only because Nvidia designed the driver this way, on AMD GPUs the driver uses only 5-20% of one CPU core. CPU is not really doing something all the time but polling the GPU "Do you need new data?" and GPU answers "No" until it really needs new data. This is also the reason why it doesn't matter if your CPU runs at 2.5Ghz or 4.5Ghz for GPU feeding.
Aurum
Posts: 296
Joined: Sat Oct 03, 2015 3:15 pm
Location: The Great Basin

Re: GPU underutilization

Post by Aurum »

So do Nvidia GPUs work any better in conjunction with AMD CPUs??? I just saw someone say that in article I saw in today's surfing. I'm probably confusing things by mixing my desire to assemble the optimum folding rig with other side topics.

To clarify, my concern with setting Priority is to make sure FAH is in first place and any other program I may decide to run is in second place. I want FAH running constantly on my headless folding rigs and any other program to only run if FAH is idle or slow.
In Science We Trust Image
bruce
Posts: 20910
Joined: Thu Nov 29, 2007 10:13 pm
Location: So. Cal.

Re: GPU underutilization

Post by bruce »

The FAHCore for CPUs will consume 100% of your resources, meaning that NOTHING else will get done. It's not good if you want to use certain services ... like logging on or monitoring things. A simple look at TaskMan (or top or ...) will show you whatever else is using a measurable amount of your CPU. Then you can make an intelligent decision about whether you want it running or not. Many of those tasks that appear to consume 0% need to run occasionally and you don't want them to wait until the WU is finished. They won't make a measurable difference in FAH's throughput.
foldy
Posts: 2061
Joined: Sat Dec 01, 2012 3:43 pm
Hardware configuration: Folding@Home Client 7.6.13 (1 GPU slots)
Windows 7 64bit
Intel Core i5 2500k@4Ghz
Nvidia gtx 1080ti driver 441

Re: CPU Priority and FAH interruptions

Post by foldy »

The type of CPU which feeds the GPU is not relevant. The other way round a Nvidia GPU needs a full core to feed it, an AMD GPU only needs 5-20% of a CPU core to feed it.

If all your CPU cores are used by another software 100% then the GPU will slow down. If you have a GPU and the CPU has 4 cores and your other software only uses 75% of the CPU then enough CPU is left for the GPU.

If you have software that uses 100% CPU but you want to prioritize the CPU for feeding the GPU you can do so in Windows by setting the FahCore_21.exe process priority to "high" manually. There are also tools which can do this automatically or you simply set a windows registry key.
http://geekswithblogs.net/akraus1/archi ... 53728.aspx

The same applies if you run CPU folding, you can change the process priority of FahCore_a7.exe.

Most users want the FahCores to have lower priority than whatever software the user sometimes want to use additionally, so user software always runs at best performance.
7im
Posts: 10189
Joined: Thu Nov 29, 2007 4:30 pm
Hardware configuration: Intel i7-4770K @ 4.5 GHz, 16 GB DDR3-2133 Corsair Vengence (black/red), EVGA GTX 760 @ 1200 MHz, on an Asus Maximus VI Hero MB (black/red), in a blacked out Antec P280 Tower, with a Xigmatek Night Hawk (black) HSF, Seasonic 760w Platinum (black case, sleeves, wires), 4 SilenX 120mm Case fans with silicon fan gaskets and silicon mounts (all black), a 512GB Samsung SSD (black), and a 2TB Black Western Digital HD (silver/black).
Location: Arizona
Contact:

Re: CPU Priority and FAH interruptions

Post by 7im »

Technically speaking, it's not a full CPU core, but a full CPU thread. And while task manager shows a higher CPU load from the NV drivers, it's not actual CPU resources being used, but more like a polling thread that repeatedly checks to see if there is more video data to process, whether there is more data or not. The AMD driver seems more of an on-demand sort of function, though that's only an anecdotal estimation from folding's behavior on those 2 types of hardware. Also note those CPU loads have changed from time to time, and fluctuates with major driver developments.
How to provide enough information to get helpful support
Tell me and I forget. Teach me and I remember. Involve me and I learn.
foldy
Posts: 2061
Joined: Sat Dec 01, 2012 3:43 pm
Hardware configuration: Folding@Home Client 7.6.13 (1 GPU slots)
Windows 7 64bit
Intel Core i5 2500k@4Ghz
Nvidia gtx 1080ti driver 441

Re: CPU Priority and FAH interruptions

Post by foldy »

I tried on my non hyperthreading CPU running a software on all cores and GPU folding TPF goes up from 1.5 min to 2 min on nvidia or 3min to 4 min on AMD, this is 33%. If I set my software to low priority and FahCore_21.exe to high priority then the miracle happens and nvidia is down to 1.5 min again while AMD stays on high 4 min.

If a software on a hyperthreading CPU uses all threads with higher priority than FahCore_21.exe, does that slow down GPU folding? (I guess so)
bruce
Posts: 20910
Joined: Thu Nov 29, 2007 10:13 pm
Location: So. Cal.

Re: CPU Priority and FAH interruptions

Post by bruce »

foldy wrote:I tried on my non hyperthreading CPU running a software on all cores and GPU folding TPF goes up from 1.5 min to 2 min on nvidia or 3min to 4 min on AMD, this is 33%. If I set my software to low priority and FahCore_21.exe to high priority then the miracle happens and nvidia is down to 1.5 min again while AMD stays on high 4 min.

If a software on a hyperthreading CPU uses all threads with higher priority than FahCore_21.exe, does that slow down GPU folding? (I guess so)
The software doesn't know if the CPU is hyperthreading or not. The OS manages a certain number of logical devices. A task is assigned to a free device. Individual operations from a task may or may not be interleaved from one or two threads to certain devices.
foldy
Posts: 2061
Joined: Sat Dec 01, 2012 3:43 pm
Hardware configuration: Folding@Home Client 7.6.13 (1 GPU slots)
Windows 7 64bit
Intel Core i5 2500k@4Ghz
Nvidia gtx 1080ti driver 441

Re: CPU Priority and FAH interruptions

Post by foldy »

OK, this is why FahClient checks for available logical CPU cores (=Threads) and subtracts 1 for each GPU. So a intel i7-6700 with 4 core and 8 threads shows 8 logical CPUs and given a GPU folding slot FahClient subtracts 1 which leaves 7 threads for the CPU folding slot.

In case another software uses all 8 threads 100%, then the priority setting can be usefull, if GPU folding slot should fold full performance.
Aurum
Posts: 296
Joined: Sat Oct 03, 2015 3:15 pm
Location: The Great Basin

Re: CPU Priority and FAH interruptions

Post by Aurum »

I know the radio button on the Advanced tab sets the CPU folding priority. I'm not concerned with that.
I want the GPU folding core, e.g. FahCore_21.exe, to run at Above Normal priority. I can use Task Manager in Win7 to change it but when a new WU loads it resets to Low. I want it persist from one WU to another. The program Prio adds a Save Priority to the Task Manager menu but it does not persist across WUs.
In Science We Trust Image
foldy
Posts: 2061
Joined: Sat Dec 01, 2012 3:43 pm
Hardware configuration: Folding@Home Client 7.6.13 (1 GPU slots)
Windows 7 64bit
Intel Core i5 2500k@4Ghz
Nvidia gtx 1080ti driver 441

Re: CPU Priority and FAH interruptions

Post by foldy »

Edit: The windows registry setting is not working. I guess the FahClient activly sets the FahCore_21.exe process priority to low after start.

The tool Process Hacker can do it :D
http://processhacker.sourceforge.net/downloads.php

There is a list with processes, you select FahCore_21.exe and in context menu change priority AND again in context menu check "Save for FahCore_21.exe"
You need to keep Process Hacker running in the background so it can do its magic.
You can click the tray icon context menu and click "Show/Hide process hacker" to hide the process hacker window.

@7im: Thanks, now I understand the CPU hyperthreading thing, a cheap 4 core 8 thread CPU can feed up to 8 GPUs, because only a thread is needed per GPU.
Post Reply