Is really Boinc run in idle priority? I think it is not.

Message boards : Questions and problems : Is really Boinc run in idle priority? I think it is not.
Message board moderation

To post messages, you must log in.

AuthorMessage
sonthakit

Send message
Joined: 23 May 15
Posts: 4
Thailand
Message 62279 - Posted: 23 May 2015, 6:16:54 UTC

I had been using Boinc version 6.12 in WinXP for a long time without any problem. All projects were run in idle priority.

But when I buy a new computer, intel core i7 8 threads, NVDIA, Intel GPU on window 8.1. Install with Boinc 7.4.42 with Vbox, strange thing happen.

Boinc or it's project do not run in idle priority anymore. Example is when I run my program in BELOW_NORMAL priority and using all 8 cores, it run only 50-60% of CPU. Boinc still run at 30-40% of CPU (each project run at 1-8% and I run 8 cores). I expect it to completely or nearly completely stop but it is not. I need to manually suspend Boinc for my program to take 95%-100% of CPU.

What is wrong? Are there any project that do not run in idle priority? Can I set the option to force boinc and project to run only in idle priority? Are there anything I can do to screen out project that do not run in idle priority?

Sonthakit
ID: 62279 · Report as offensive
SekeRob2

Send message
Joined: 6 Jul 10
Posts: 585
Italy
Message 62281 - Posted: 23 May 2015, 16:15:04 UTC - in response to Message 62279.  
Last modified: 23 May 2015, 16:37:36 UTC

If your web based location preferences have not changed, to only compute when device is idle, then the one remaining thing to do is to set BOINC in the Activity menu to 'Run based on preferences'. You can specify that separately for CPU and GPGPU.
Coelum Non Animum Mutant, Qui Trans Mare Currunt
ID: 62281 · Report as offensive
sonthakit

Send message
Joined: 23 May 15
Posts: 4
Thailand
Message 62284 - Posted: 23 May 2015, 16:55:11 UTC

Thank for reply.
But I mean in programming technical API term of CPU priority thread.
I do not mean Boinc should run only when I do not use keyboard or mouse.
I do not mean Boinc should run when processor usage is less than x percent.
I have been use Boinc 6.12 for more than 6 years, I know all of these options.

What I mean is... Boinc application do not run in IDLE_PRIORITY thread, like in version 6.12.

https://msdn.microsoft.com/en-us/library/windows/desktop/ms686277(v=vs.85).aspx
https://msdn.microsoft.com/en-us/library/windows/desktop/ms686219(v=vs.85).aspx

I have a job to do, which is my program which run full CPU for many hours.

In 6.12 when I do not run my program, Boinc use CPU 100%
When I run my program in BELOW_NORMAL priority, my program use CPU 100%, Boinc use 0% (because Boinc application is IDLE_PRIORITY)

But in version 7.4.42, when I run my program, Boinc slow down my program by steal the CPU time. My program run only 50-60% while Boinc run 30-40%. This is not a IDLE_PRIORITY application. Boinc turn to run in BELOW_NORMAL priority.

What is going on? Boinc is suppose to be an application that use idle time of CPU!! It should not be the application that steal CPU from the user application.

Are there anything uncontrollable? Cannot set VBOX to idle priority? Cannot set GPU application to idle priority? Cannot set wrapper to idle priority?
I need more technical programming term to answer my question.

Please. Thank.
Sonthakit
ID: 62284 · Report as offensive
SekeRob2

Send message
Joined: 6 Jul 10
Posts: 585
Italy
Message 62285 - Posted: 23 May 2015, 17:06:13 UTC - in response to Message 62284.  
Last modified: 23 May 2015, 17:16:08 UTC

hmmm, well glad you know it all (and the science apps are still running the lowest idle [nice] priority, lest someone changed that independent of the BOINC client ;>). Just maybe, BOINC requires a little program called boinctray.exe to detect user activity. Check it's running. Other than that never heard of BOINC science apps not running in the lowest/nice priority. Got BOINC 7.5.1 going on Linux and 'top u boinc' shows all workers are going at nice=19. Don't see why on Windows that would have changed.

BTW, BOINC is meant to use only 'idle' cycles. With I7-8 hyperthreading your [user] program may still not be using it all, so the rest is siphoned off by BOINC workers. If that is not good enough you can specify an <exclusive_app> in the cc_config.xml. Then BOINC will truly pause long as your user program is loaded, automatically.
Coelum Non Animum Mutant, Qui Trans Mare Currunt
ID: 62285 · Report as offensive
Profile Jord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15116
Netherlands
Message 62286 - Posted: 23 May 2015, 17:29:10 UTC

The BOINC program itself runs in Normal priority.
The VirtualBox program itself runs in Normal priority.

Project science applications for the CPU only run in Low priority.
Project science applications for the GPU, (undefined) coprocessor and for VirtualBox run in Below-Normal priority because when these are run at low priority, anything else running at the same time will take away cycles and cause these tasks to unload from memory. GPU, coprocessor and VBox tasks do not remain in memory when BOINC pauses with the Leave in memory preference setting.

All these priority settings have always been set like this, bar the GPU, VBox and coprocessor applications their priority. These have changed priority over the past years/months.

Upgrading BOINC from 6 to 7 does not change the priority of science programs. The priority settings of these programs are set by the project, not by BOINC.

As Sekerob says, use the &lt;exclusive_app&gt; and &lt;exclusive_gpu_app&gt; options in cc_config.xml to automatically suspend all of BOINC and the science applications (when run based on preferences) when any program mentioned in these exclusions is found in memory. BOINC will resume work once this program unloads from memory.

Example of such a cc_config.xml file:
<cc_config>
<options>
<exclusive_app>Notepad.exe</exclusive_app>
<exclusive_app>Pipes.scr</exclusive_app>
<exclusive_gpu_app>Bingo.exe</exclusive_gpu_app>
</options>
</cc_config>

The exclusive GPU app option will only suspend work done on the GPU, but allow work done on the CPU (if any) to continue.
ID: 62286 · Report as offensive
sonthakit

Send message
Joined: 23 May 15
Posts: 4
Thailand
Message 62350 - Posted: 27 May 2015, 5:21:50 UTC

Thank you. That's explain a lot.

Sonthakit
ID: 62350 · Report as offensive
Crystal Pellet

Send message
Joined: 23 Apr 12
Posts: 41
Netherlands
Message 62356 - Posted: 28 May 2015, 11:50:53 UTC - in response to Message 62286.  
Last modified: 28 May 2015, 11:53:58 UTC

...
Project science applications for the GPU, (undefined) coprocessor and for VirtualBox run in Below-Normal priority because when these are run at low priority, anything else running at the same time will take away cycles and cause these tasks to unload from memory. GPU, coprocessor and VBox tasks do not remain in memory when BOINC pauses with the Leave in memory preference setting.

Sorry Jord,

But since, I think it was VBox version 4.3.14 Oracle decided for security reasons to create VirtualBox processes more sandboxed.
Since then the Vbox processes are running at 'normal' priority.
BOINC cannot change that, neither the user can (at least for Windows).
ID: 62356 · Report as offensive
Profile Jord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15116
Netherlands
Message 62357 - Posted: 28 May 2015, 12:18:08 UTC - in response to Message 62356.  

No need to apologize, thanks for the correction.
ID: 62357 · Report as offensive
steveyos

Send message
Joined: 28 May 15
Posts: 4
United States
Message 62358 - Posted: 28 May 2015, 14:01:09 UTC
Last modified: 28 May 2015, 14:02:13 UTC

I can confirm that one or more of the gpu projects slows my whole computer down, I was running boinc for a few months while gaming fine until either I added a new gpu project or a project I already had was upgraded and now when that's running I have to close boinc if I wanna do anything at all.

I'm not using any virtual boxes, boinc is installed normally on windows 10.
ID: 62358 · Report as offensive
Profile Jord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15116
Netherlands
Message 62362 - Posted: 28 May 2015, 16:06:51 UTC - in response to Message 62358.  
Last modified: 28 May 2015, 16:07:53 UTC

I can confirm that one or more of the gpu projects slows my whole computer down

The default setting for use of the GPU is only when the computer is not in use by a person (idle). This was done with the thought in mind that the GPU will slow down a system when calculations are done on that GPU.


Especially when you're gaming, the game and the calculations will both fight for the same hardware to use, which will slow both down. So either set BOINC back on only use GPU when computer is idle, or use the exclusive applications options (&lt;exclusive_app&gt; and &lt;exclusive_gpu_app&gt;) in a cc_config.xml file to stop BOINC from allowing calculations to be done when it detects that a certain application is in memory.

e.g.
<cc_config>
<log_flags>
</log_flags>
<options>
<exclusive_app>Notepad.exe</exclusive_app>
<exclusive_app>winamp.exe</exclusive_app>
<exclusive_gpu_app>GTAV.exe</exclusive_gpu_app>
<exclusive_gpu_app>NFS.exe<exclusive_gpu_app>
</options>
</cc_config>

Multiple applications can be excluded, each on their own line.
Full path to where the application lives isn't needed.
The &lt;exclusive_app&gt; option will suspend the whole of BOINC (CPU and GPU).
The &lt;exclusive_gpu_app&gt; option will only suspend the GPU, but allow CPU tasks to continue.
ID: 62362 · Report as offensive
steveyos

Send message
Joined: 28 May 15
Posts: 4
United States
Message 62372 - Posted: 29 May 2015, 13:12:52 UTC - in response to Message 62362.  

I can confirm that one or more of the gpu projects slows my whole computer down

The default setting for use of the GPU is only when the computer is not in use by a person (idle). This was done with the thought in mind that the GPU will slow down a system when calculations are done on that GPU.


Especially when you're gaming, the game and the calculations will both fight for the same hardware to use, which will slow both down. So either set BOINC back on only use GPU when computer is idle, or use the exclusive applications options (&lt;exclusive_app&gt; and &lt;exclusive_gpu_app&gt;) in a cc_config.xml file to stop BOINC from allowing calculations to be done when it detects that a certain application is in memory.

e.g.
<cc_config>
<log_flags>
</log_flags>
<options>
<exclusive_app>Notepad.exe</exclusive_app>
<exclusive_app>winamp.exe</exclusive_app>
<exclusive_gpu_app>GTAV.exe</exclusive_gpu_app>
<exclusive_gpu_app>NFS.exe<exclusive_gpu_app>
</options>
</cc_config>

Multiple applications can be excluded, each on their own line.
Full path to where the application lives isn't needed.
The &lt;exclusive_app&gt; option will suspend the whole of BOINC (CPU and GPU).
The &lt;exclusive_gpu_app&gt; option will only suspend the GPU, but allow CPU tasks to continue.




But how come some gpu projects don't change the performance of my pc at all- for example right now I'm doing a GPUGRID long run, I can launch any two new graphics intensive games maxed in their own monitor while that's going, and others make even moving windows around impossible (this would be one of the new ones I recently added)? When boinc says it doesn't affect pc performance, were they saying that specifically meaning their default settings? Could one of the projects I recently added have some bugs or do some gpu projects just use more gpu? I turn my pc off whenever I'm not using it so I'd much rather keep gpu usage for boinc always on and finding whichever gpu project is slowing me down and remove that one, because to quote my last post "I was running boinc for a few months while gaming fine until either I added a new gpu project or a project I already had was upgraded".
ID: 62372 · Report as offensive
Richard Haselgrove
Volunteer tester
Help desk expert

Send message
Joined: 5 Oct 06
Posts: 4874
United Kingdom
Message 62375 - Posted: 29 May 2015, 13:56:32 UTC - in response to Message 62372.  

There's no such thing as a single, "one size fits all", GPU task.

For starters, there are two major GPU programming languages in use at BOINC projects - CUDA and OpenCL. Secondly, the nature of the calculation to be performed varies: some projects are largely integer-based, but others require double-precision floating point arithmetic (integer tasks are probably closer to the gaming experience the cards were designed for). Thirdly, different tasks (even within the same project) vary in the amount of data that needs to be transferred to and from the graphics card over the PCIe bus - a major bottleneck in general-purpose computing on GPUs: games only need to transfer data in one direction. And finally, different programmers approach their tasks differently, and can introduce their own variability.

GPUGrid -
Use CUDA (usually better than OpenCL w.r.t user experience)
Have large tasks (potentially bad w.r.t. bus saturation)
Seem to know how to program efficiently.

Your experience at other projects may vary.
ID: 62375 · Report as offensive
sonthakit

Send message
Joined: 23 May 15
Posts: 4
Thailand
Message 62383 - Posted: 30 May 2015, 2:02:36 UTC

This turn to be a complicate trust and moral object.

Should Boinc warn the user that GPU intensive and VBOX CPU intensive application can slow down their computer? Especially if VBOX application for window run in NORMAL_PRIORITY.

I think it is not fair for user that this information is a little bit secret or not well known. I think there should be an easier option more than cc_config.xml to turn off non IDLE_PRIORITY CPU and GPU intensive application. Even a BELOW_NORMAL priority application can steal the CPU time, Boinc should not let that happen secretly.

I mean, at least, Boinc should warn the user.
ID: 62383 · Report as offensive

Message boards : Questions and problems : Is really Boinc run in idle priority? I think it is not.

Copyright © 2022 University of California. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.