SetPriority: Make GPU client run at higher priority than VMs

This forum contains information about 3rd party applications which may be of use to those who run the FAH client and one place where you might be able to get help when using one of those apps.

Moderator: Site Moderators

SetPriority: Make GPU client run at higher priority than VMs

Postby Zagen30 » Thu Jun 25, 2009 10:40 pm

For the record, I did not write this program, I just found the download link online.

When running the GPU client along with some sort of CPU client in Windows, the recommendation is to set the GPU's priority to Low instead of Idle so that it can always get what CPU time it needs. But this doesn't translate when running the Linux client in a Virtual Machine, as the virtualization software will probably be running at Normal Windows priority, as opposed to the GPU client which runs at Low. GPU PPD will suffer as a result. You can manually change priorities using Task Manager, but you have to do it for each new WU since the GPU core closes when a WU finishes and reopens when the new WU is started, and Task Manager doesn't remember the altered priority once an application closes.

I found a program that can remedy this situation- SetPriority http://download.cnet.com/SetPriority/3000-2094_4-10473386.html. It's a small program that, when running, will force tasks to run at a Windows priority that you specify. This means that you can tell the GPU client to run at a higher priority than the VM(s) you're running, effectively duplicating the recommendation for the WinCPU/GPU client combination.

When you've saved the application somewhere (there's no installation, you just download the whole program) and opened it, you'll want to go to the Priority Presets tab. Here you need to enter the processes that you want to run at a specified priority, namely FahCore_11 (and FahCore_14 if you have an Nvidia card). Note that even though Task Manager reports the processes as having a ".exe" at the end, you leave them off when entering them in SetPriority. Next select a priority to force the GPU core(s) to run at- the simplest thing would be for them to run at Above Normal since VM's by default run at Normal.

One alternative is to have the VM process run at Low priority and the GPU cores run at Below Normal. I don't think this is necessary, but it better resembles the priority setup of the two Windows client. If you do this, you'll want to force the main VM thread to run lower- it's easily identifiable since under Task Manager it'll be using up almost all of your processing power. Under VMWare this is called "vmware-vmx"; I don't know what it's called under other virtualization tools.

In any case, once you have added whatever processes you want to, from now on they will open at those priorities. Even though the GPU cores shut down between WUs, the new instances will start up at the priority you specified. Note that SetPriority has to be open for this to occur; if it's not open, processes will open at their default priorities (i.e. Normal for the VM and Low for the GPU cores). There is an option to have SetPriority open when Windows starts, but I'm not sure if it always works.

One thing that I have noticed is that the Linux client might run slower if it doesn't have as high priority as the GPU client. It's up to you to decide whether the GPU gains make up for the SMP losses on your machine.
Image
Zagen30
 
Posts: 1814
Joined: Tue Mar 25, 2008 12:45 am

Re: SetPriority: Make GPU client run at higher priority than VMs

Postby ChasR » Fri Jun 26, 2009 12:34 am

Assuming the use of VMware, if you're running the GPU client at low priority (slightly higher with the systray client), you can edit the .vmx (vmware configuration) file found in the virtual machines directory to change the line:

priority.ungrabbed = "normal"

to

priority.ungrabbed = "idle"

This will solve cpu contention issues for the GPU client without additional software.

While editing, if you want to permanently set the affinity of the VMs for a quad, add the following lines to the .vmx file:
processor0.use="TRUE"
processor1.use="TRUE"
processor2.use="FALSE"
processor3.use="FALSE"

A second VM would swap TRUE for FALSE and vice versa.
Image
User avatar
ChasR
 
Posts: 759
Joined: Sun Dec 02, 2007 5:36 am
Location: Atlanta, GA

Re: SetPriority: Make GPU client run at higher priority than VMs

Postby Zagen30 » Fri Jun 26, 2009 3:51 am

Oh, hey, that works too, and it's easier. :oops:

I found that VMWare Server 2.01, at least, didn't have the priority.grabbed/ungrabbed parameters in the .vmx file, but adding them in manually worked.
Zagen30
 
Posts: 1814
Joined: Tue Mar 25, 2008 12:45 am

Re: SetPriority: Make GPU client run at higher priority than VMs

Postby toTOW » Fri Jun 26, 2009 10:40 am

Default setting for VMs is to use the global setting (Preferences > Priority) ... but if you set it for each VM, it will prevail on global setting (if you want to set the setting once and for all, set it in the preferences, and let VMs to use your default setting).
Folding@Home beta tester since 2002. Folding Forum moderator since July 2008.

FAH-Addict : latest news, tests and reviews about Folding@Home project.

Image
User avatar
toTOW
Site Moderator
 
Posts: 8914
Joined: Sun Dec 02, 2007 10:38 am
Location: Bordeaux, France

Re: SetPriority: Make GPU client run at higher priority than VMs

Postby tonic » Mon Jun 29, 2009 2:26 pm

ChasR wrote: priority.ungrabbed = "normal"

to

priority.ungrabbed = "idle"


Just setup VMWare to increase my SMP PPD. Noticed that my GPU clients had dropped below 1K PPD each. This completely fixed the problem.

Thanks!
Image
tonic
 
Posts: 136
Joined: Sat Aug 02, 2008 4:05 am
Location: Seattle, WA

Re: SetPriority: Make GPU client run at higher priority than

Postby niraj » Wed Nov 02, 2011 1:33 pm

I suggest starting up the VMs, then going to the task manager and set the priority for vmware-vmx.exe to below normal, or low, and see what happens to your GPU clients.

You can also play with higher priorities for the fah***.exe from the GPU client.
niraj
 
Posts: 1
Joined: Wed Nov 02, 2011 1:27 pm


Return to 3rd party contributed software

Who is online

Users browsing this forum: No registered users and 1 guest

cron