Index | Recent Threads | Unanswered Threads | Who's Active | Guidelines | Search |
World Community Grid Forums
Category: Support Forum: BOINC Agent Support Thread: Increased CPU time % shows no improvement and makes GPU tasks slower? |
No member browsing this thread |
Thread Status: Active Total posts in this thread: 13
|
Author |
|
Former Member
Cruncher Joined: May 22, 2018 Post Count: 0 Status: Offline |
Tasks running on the CPU seem slow these days compared to the fast new GPU tasks. So today I increased the "use at most x% CPU time" setting from 60% to 95% which should give 35% improvement. After I did that, the Windows Task Manager was showing increased CPU usage as expected but HCC and other CPU tasks were not completing faster than before (note: I'm referring to the "Elapsed" column). Furthermore, HCC GPU tasks suddenly were completing in 18 minutes instead of 12. After reverting to 60%, GPU tasks are back to normal. Why do I get no improvement on the CPU and decreased performance on the GPU when I increase the CPU time percentage?
|
||
|
mikey
Veteran Cruncher Joined: May 10, 2009 Post Count: 821 Status: Offline Project Badges: |
Tasks running on the CPU seem slow these days compared to the fast new GPU tasks. So today I increased the "use at most x% CPU time" setting from 60% to 95% which should give 35% improvement. After I did that, the Windows Task Manager was showing increased CPU usage as expected but HCC and other CPU tasks were not completing faster than before (note: I'm referring to the "Elapsed" column). Furthermore, HCC GPU tasks suddenly were completing in 18 minutes instead of 12. After reverting to 60%, GPU tasks are back to normal. Why do I get no improvement on the CPU and decreased performance on the GPU when I increase the CPU time percentage? You went the WRONG way! That line says "While processor usage is LESS THAN [] percent (zero means no restriction)". This means that in your old settings...when your pc had 60% of your cpu FREE it can run Boinc, otherwise it cannot. Now you have set it so it needs 95% FREE before Boinc can run, that is basically never if your pc is a normal pc and not a Boinc only machine. Heck Windows using up to 5% just sitting there, using and releasing resources on a millisecond by millisecond basis. Then if it is Win7 it can be indexing the harddrive or even defragmenting the harddrive or whatever else Windows decides to do besides just sit there and wait for you. It is typical Microsoft error message type wording, NOT saying what it REALLY means to us non programers! BUT it makes perfect sense if you think in reverse, 'run boinc if the processor has at least x percent free'! In your case you went from 60% to 95% and are now back to 60% FREE. The default is 25%, meaning your pc can use up to 75% of the cpu before stopping Boinc so it can complete it own tasks. Checking your email, opening a webpage with the setting at 25% should barely slow down Boinc, if at all. But opening a spreadsheet, or word document etc, should slow it down for a split second then boom Boinc is back at full speed again. BUT with the setting at 60% or even 95% your pc will need to essentially be completely idle before Boinc runs at all. |
||
|
Former Member
Cruncher Joined: May 22, 2018 Post Count: 0 Status: Offline |
Completely at a loss, mikey159b, what
----------------------------------------"Use at most xx% CPU time" (WCG default 60% on default preset profile) has anything to do with "While processor usage is less than yy % (0 means no restriction). BOINC default 25%. @microelectronico, The 95% works in BOINC as running 19 seconds, pausing 1 second, which gives an average of 95%. The design is temperature control, not load control. I suppose that when the CPU is cycled at 60% [run 3 seconds, pause 2 seconds], it gives the GPU more exclusive CPU time access. When at 95%, the "elapsed" time will probably be longer as the task is then competing with the GPU task also wanting a piece of the CPU pie, but the CPU time will still be the same". It's a bit puzzling as I understood before that the HCC-GPU tasks were already reserving a CPU thread. On Hyper-threaded systems it though gets a bit more complex as the OS is trying to allocate any spare cycles to the remaining tasks. Kind of, but cant replicate this to know for sure. edit: spellcheck [Edit 1 times, last edit by Former Member at Oct 25, 2012 2:30:47 PM] |
||
|
Former Member
Cruncher Joined: May 22, 2018 Post Count: 0 Status: Offline |
@mikey159b,
thank you for the user-friendly and thorough explanation of "While processor usage is less than", but my question was about "Use at most x% CPU time". @SekeRob, thank you for answering. My i5 is not Hyper-threaded though. Also, yes, HCC-GPU is using a CPU thread because, now, only 3 other tasks are running simultaneously on my quad-core. Which brings another question: is this setting per-core or per-CPU? Like if I increase from 60% to 95%, I should get, in theory, an improvement of 35% per core or in total? And I wonder if the GPU tasks will complete even faster if I lower % CPU time even more... Is this why some people want to run only gpu tasks? |
||
|
Former Member
Cruncher Joined: May 22, 2018 Post Count: 0 Status: Offline |
Hi microelectronico,
First, an aside - the built-in BOINC temperature control is very simple-minded. It computes in tens, so 95% is the same as 90% - 9 seconds out of 10. You increased the time that BOINC would use the CPU cores by 50% and saw the GPU work units take 50% longer. I think that we should not concentrate on percentages. Your observation implies that the GPU work unit has CPU threads that are in contention with the BOINC assigned CPU work units. Interestingly, it also implies that the CPU threads spawned by the GPU work unit are not controlled by the BOINC temperature control, so they run freely during the 4 seconds out of 10 that BOINC does not run. I am sure that BOINC temperature control ignores the GPU. It appears that the CPU threads of the GPU work unit are free and ignore the BOINC temperature control on and off commands. This hypothesis can be tested by going to 0% usage (Allowing BOINC to run always. After all, if you have a GPU board you are not worried about the trivial additional CPU heat.) but reducing the number of cores that BOINC can use in order to leave a core free. Please try this experiment and post the results. Lawrence |
||
|
Former Member
Cruncher Joined: May 22, 2018 Post Count: 0 Status: Offline |
Had seen you write that before, Lawrence, that the throttle was rounding to one decimal fraction of 1 i.e. 95% becoming 90%, so now tested this by entering 95% and indeed, the log speaks for itself...every tenth second a break of 1 second is introduced [still completely useless as a cooling setting or a load balancing, giving the user more exclusive time [dead horse beating].
1809 26-10-2012 9:09:31 [cpu_sched] Resuming - CPU throttle 1810 World Community Grid 26-10-2012 9:09:31 [cpu_sched] Resuming X0930071550560200607031529_0 1811 World Community Grid 26-10-2012 9:09:31 [cpu_sched] Resuming X0930071550558200607031529_0 1812 World Community Grid 26-10-2012 9:09:31 [cpu_sched] Resuming X0930071550552200607031529_0 1813 World Community Grid 26-10-2012 9:09:31 [cpu_sched] Resuming X0930071551176200607101404_2 1814 World Community Grid 26-10-2012 9:09:31 [cpu_sched] Resuming X0930071560908200606270934_2 1815 World Community Grid 26-10-2012 9:09:31 [cpu_sched] Resuming X0960071550066200607241955_2 1816 World Community Grid 26-10-2012 9:09:31 [cpu_sched] Resuming X0960071061115200606211032_0 1817 World Community Grid 26-10-2012 9:09:31 [cpu_sched] Resuming X0960071550862200607241944_2 1818 World Community Grid 26-10-2012 9:09:41 [checkpoint] result X0960071061115200606211032_0 checkpointed 1819 26-10-2012 9:09:50 [cpu_sched] Suspending - CPU throttle 1820 World Community Grid 26-10-2012 9:09:50 [cpu_sched] Preempting X0930071550560200607031529_0 (left in memory) 1821 World Community Grid 26-10-2012 9:09:50 [cpu_sched] Preempting X0930071550558200607031529_0 (left in memory) 1822 World Community Grid 26-10-2012 9:09:50 [cpu_sched] Preempting X0930071550552200607031529_0 (left in memory) 1823 World Community Grid 26-10-2012 9:09:50 [cpu_sched] Preempting X0930071551176200607101404_2 (left in memory) 1824 World Community Grid 26-10-2012 9:09:50 [cpu_sched] Preempting X0930071560908200606270934_2 (left in memory) 1825 World Community Grid 26-10-2012 9:09:50 [cpu_sched] Preempting X0960071550066200607241955_2 (left in memory) 1826 World Community Grid 26-10-2012 9:09:50 [cpu_sched] Preempting X0960071061115200606211032_0 (left in memory) 1827 World Community Grid 26-10-2012 9:09:50 [cpu_sched] Preempting X0960071550862200607241944_2 (left in memory) 1828 26-10-2012 9:09:51 [cpu_sched] Resuming - CPU throttle 1829 World Community Grid 26-10-2012 9:09:51 [cpu_sched] Resuming X0930071550560200607031529_0 1830 World Community Grid 26-10-2012 9:09:51 [cpu_sched] Resuming X0930071550558200607031529_0 1831 World Community Grid 26-10-2012 9:09:51 [cpu_sched] Resuming X0930071550552200607031529_0 1832 World Community Grid 26-10-2012 9:09:51 [cpu_sched] Resuming X0930071551176200607101404_2 1833 World Community Grid 26-10-2012 9:09:51 [cpu_sched] Resuming X0930071560908200606270934_2 1834 World Community Grid 26-10-2012 9:09:51 [cpu_sched] Resuming X0960071550066200607241955_2 1835 World Community Grid 26-10-2012 9:09:51 [cpu_sched] Resuming X0960071061115200606211032_0 1836 World Community Grid 26-10-2012 9:09:51 [cpu_sched] Resuming X0960071550862200607241944_2 It is the logic of Spock applied that the throttle setting only applies to CPU tasks [no control over the CPU portion of a GPU task which is managed by the GPU part of the client scheduler]. microelectronico, if you really need a form of temp control, consider TThrottle , a 3rd party temperature control tool specially written for BOINC. It can manager both CPU and GPU temp [separately], smoothly, not the BOINC crude control of pausing seconds, to cool down, then run for seconds... as said BOINC CPU time only function/purpose. We recommend if cooling is needed to set it to 50%, which is the new default. This optimally prevents any fans to kick in/out due temperature fluctuations. The proposed experiment... I'd have a hard time to think if not running full out, less total work is done than running at 60%, but then we know from tests that in certain situations, the productivity goes negative due to resource competition, to the point that the competition starts ruling operations [for instance perpetual file swapping]. |
||
|
Former Member
Cruncher Joined: May 22, 2018 Post Count: 0 Status: Offline |
By my understanding (simple minded as I am) GPU need a CPU for in/out processing, 8 cores at 60%=4.8 cores, when the GPU needs a core, good chance one is free, 8 cores at 90%=7.2 cores, not so good a chance, more time waiting for free core. Set limit to 7 cores (1 free for gpu) @ 70% and watch the increased production. Adjust for your setup
|
||
|
Former Member
Cruncher Joined: May 22, 2018 Post Count: 0 Status: Offline |
It's an I5, fredski, which implies that 75% of processors would be the answer [reserve 1 core for GPU, which a HCC-GPU task is doing out of the box anyhow, FAIU]. It's though that microelectronico has been seeing run time lengthening with using the % CPU time.
|
||
|
Former Member
Cruncher Joined: May 22, 2018 Post Count: 0 Status: Offline |
Lawrence, I tried the experiment you suggested. I set boinc to use at most 100% cpu time but to use at most 75% of the processors. I'm not sure if that is what you meant.
Now only 2 cpu tasks are running at once and the gpu task is, again, taking longer to complete (18 minutes). |
||
|
mikey
Veteran Cruncher Joined: May 10, 2009 Post Count: 821 Status: Offline Project Badges: |
@mikey159b, thank you for the user-friendly and thorough explanation of "While processor usage is less than", but my question was about "Use at most x% CPU time". AHHH sorry!!! Which brings another question: is this setting per-core or per-CPU? Like if I increase from 60% to 95%, I should get, in theory, an improvement of 35% per core or in total? And I wonder if the GPU tasks will complete even faster if I lower % CPU time even more... Is this why some people want to run only gpu tasks? One thing to consider is that SOME Boinc versions have had trouble with is changing that setting to ANYTHING besides 100%. I don't know which one you use, but it could be part of your problem. SekeRob may be able to answer which is an okay version to play with that number. [Edit 2 times, last edit by mikey159b at Oct 26, 2012 12:14:35 PM] |
||
|
|