Processor usage


log in

Advanced search

Questions and Answers : Wish list : Processor usage

Author Message
Gary
Send message
Joined: 1 Jun 99
Posts: 25
Credit: 12,763,722
RAC: 4,947
United States
Message 800042 - Posted: 20 Aug 2008, 4:49:18 UTC

On multi-processor systems, or multi-core systems, I think Boinc should keep each process it is running limited to one processor per task.

Normally on my windows vista system the 3 tasks are equally sharing the processors and not one processor ever gets above 60 or 70 percent utilization, but if I limit each task to an individual processor they will all run at 100% and finish way faster. But I don't have the time to spare to change settings every hour when tasks complete and new ones start.
____________

Reinart Guy
Send message
Joined: 11 Apr 00
Posts: 4
Credit: 38,487,858
RAC: 732
Luxembourg
Message 800076 - Posted: 20 Aug 2008, 10:41:15 UTC

Yes this would be fine. Having the possibility to fix the Service running to an spicified CPU with a specified priority.

OzzFan
Volunteer tester
Avatar
Send message
Joined: 9 Apr 02
Posts: 13578
Credit: 29,895,423
RAC: 16,311
United States
Message 800205 - Posted: 20 Aug 2008, 20:36:09 UTC

I think there may be something wrong with your settings as I'm not seeing this type of behavior on my dual Xeon 5130 (dual socket + dual core = 4 processors).

Tests have been done by our SETIzens in the Number Crunching forum that has shown that setting processors affinity (locking a thread to a CPU) can actually lower performance in some cases, but never seems to improve performance.

Profile Leaps-from-Shadows
Volunteer tester
Avatar
Send message
Joined: 11 Aug 08
Posts: 323
Credit: 259,220
RAC: 0
United States
Message 806521 - Posted: 9 Sep 2008, 15:58:22 UTC

Not sure if this was ever resolved or not, but my three-core AMD Phenom system has never had this problem either. I'm using the 6.2.18 BOINC client and crunching SETI units using the standard (non-optimized) apps. Running Vista Home Premium x64, all three cores show 100% utilization.
____________
Cruiser
Gateway GT5692 L-f-S Edition
-Phenom X4 9650 CPU
-4GB 667MHz DDR2 RAM
-500GB SATA HD
-Vista x64 SP1
-BOINC 6.2.19 32-bit client
-SSE3 optimized 32-bit apps

sonic
Send message
Joined: 15 Jun 03
Posts: 1
Credit: 203
RAC: 0
United Kingdom
Message 807770 - Posted: 13 Sep 2008, 14:56:50 UTC

You can limit BIONIC to one processor.
If you go into Advanced view (Grid view), Advanced Tab, Preferences, Processor usage tab, and at the bottom of the window under Other Options you will see (On multiprocessor systems, use at most _____ processors) Default is 16 I think.
Set this to 1 hit OK and your done.

Profile Ageless
Avatar
Send message
Joined: 9 Jun 99
Posts: 12284
Credit: 2,572,081
RAC: 655
Netherlands
Message 807773 - Posted: 13 Sep 2008, 15:21:29 UTC - in response to Message 807770.
Last modified: 13 Sep 2008, 15:21:52 UTC

Good advice, but the wrong one for BOINC 6 and above.

The preference you point out works only on BOINC 5.10 and below. For BOINC 6, you'll need the On multiprocessors, use at most xx% of processors preference. These preferences can also be set through the web based preferences.

The local advanced preferences override the web based preferences for that computer only.
____________
Jord

Fighting for the correct use of the apostrophe, together with Weird Al Yankovic

Gary
Send message
Joined: 1 Jun 99
Posts: 25
Credit: 12,763,722
RAC: 4,947
United States
Message 817540 - Posted: 12 Oct 2008, 15:06:49 UTC - in response to Message 807773.

The reason for the suggestion, is because I have a quad-core, and I've noticed the difference in speed. Plus I run a computer lap with 32 dual-cores and I've noticed the differences there as well. My impression of it is why take processing time to change processor, and to simply give people a choice...
____________

OzzFan
Volunteer tester
Avatar
Send message
Joined: 9 Apr 02
Posts: 13578
Credit: 29,895,423
RAC: 16,311
United States
Message 817547 - Posted: 12 Oct 2008, 15:25:09 UTC - in response to Message 817540.

The only problem with giving people a choice is that the more options you add to BOINC, the more a casual user might be intimidated by the plethora of options and decide that BOINC is "too techy" for them.

A more technical reason as to not giving people a choice is that any process that locks to CPU0 can degrade system performance, being that CPU0 is usually considered the "main" CPU in a bunch and is responsible for all primary tasks and delegating resources to other CPUs.

Gary
Send message
Joined: 1 Jun 99
Posts: 25
Credit: 12,763,722
RAC: 4,947
United States
Message 818507 - Posted: 14 Oct 2008, 23:43:27 UTC - in response to Message 817547.

To OzzFan plus everyone: Of course BOINC already has a simplified generic mode that it goes into as the default.. I would ask the option be added to the advanced mode and not the simplified mode.

To Everyone: Here's what I see as the difference between letting BOINC share all the processors for all the tasks vs. setting the affinity. With the affinity set for each process lock on its only processor I notice they all stay at 24 to 25% (given its a quad-core 25% is the max for the processor), but when I don't limit the affinity to specific processors, each process drops to as low as 18 to 20% at times...

Eitherway, I think it is a suggestion worth looking into, because I personally would like to be able have each process locked to its own processor.
____________

OzzFan
Volunteer tester
Avatar
Send message
Joined: 9 Apr 02
Posts: 13578
Credit: 29,895,423
RAC: 16,311
United States
Message 818516 - Posted: 14 Oct 2008, 23:58:57 UTC - in response to Message 818507.

To OzzFan plus everyone: Of course BOINC already has a simplified generic mode that it goes into as the default.. I would ask the option be added to the advanced mode and not the simplified mode.


Even though the "Simple GUI" is started by default on first install, many people (including newbies) use the Advanced View anyway, and it would lead to even more questions as "What does this do?" and because of processor locking to CPU0 "Why is my PC sluggish? If SETI won't give me back my CPU, I'm leaving!".

To Everyone: Here's what I see as the difference between letting BOINC share all the processors for all the tasks vs. setting the affinity. With the affinity set for each process lock on its only processor I notice they all stay at 24 to 25% (given its a quad-core 25% is the max for the processor), but when I don't limit the affinity to specific processors, each process drops to as low as 18 to 20% at times...


And that's a good thing, it means that when your system needs to do something, it can properly use whatever power is available.

But again, tests have shown that using processor affinity actually increases crunch time per WU, meaning it actually takes longer to complete because Windows is not allowed to use whatever power it needs as necessary.

Eitherway, I think it is a suggestion worth looking into, because I personally would like to be able have each process locked to its own processor.


If you're that interested, there is always the option of installing a customized version of BOINC released by a programmer named Crunch3r that has built CPU affinity into his version (done automatically, no need to turn it on or off, its on permanently).

You'll have to install BOINC v5.10.45 and then install Crunch3r's BOINC v6.1.x on top of that.

Gary
Send message
Joined: 1 Jun 99
Posts: 25
Credit: 12,763,722
RAC: 4,947
United States
Message 819184 - Posted: 16 Oct 2008, 5:49:02 UTC - in response to Message 818516.

To OzzFan plus everyone: Of course BOINC already has a simplified generic mode that it goes into as the default.. I would ask the option be added to the advanced mode and not the simplified mode.


Even though the "Simple GUI" is started by default on first install, many people (including newbies) use the Advanced View anyway, and it would lead to even more questions as "What does this do?" and because of processor locking to CPU0 "Why is my PC sluggish? If SETI won't give me back my CPU, I'm leaving!".

To Everyone: Here's what I see as the difference between letting BOINC share all the processors for all the tasks vs. setting the affinity. With the affinity set for each process lock on its only processor I notice they all stay at 24 to 25% (given its a quad-core 25% is the max for the processor), but when I don't limit the affinity to specific processors, each process drops to as low as 18 to 20% at times...


And that's a good thing, it means that when your system needs to do something, it can properly use whatever power is available.

But again, tests have shown that using processor affinity actually increases crunch time per WU, meaning it actually takes longer to complete because Windows is not allowed to use whatever power it needs as necessary.

Eitherway, I think it is a suggestion worth looking into, because I personally would like to be able have each process locked to its own processor.


If you're that interested, there is always the option of installing a customized version of BOINC released by a programmer named Crunch3r that has built CPU affinity into his version (done automatically, no need to turn it on or off, its on permanently).

You'll have to install BOINC v5.10.45 and then install Crunch3r's BOINC v6.1.x on top of that.



I don't want to argue, as I understand where you are coming from, but I'd like to point out a few things. I requested changing the affinity, not the priority level. BOINC still gives up processing power when a higher priority application needs it, even when I set the affinity levels. I, personally, see nothing wrong with putting advanced settings in advanced mode, thus the meaning of advanced mode, maybe put a disclaimer on the options.

Also, it seems that other people share the same feelings about setting the affinity and that someone felt it made enough difference that she/he actually programed a customized version of BOINC to do just that.

I would at least ask that someone do some more research into it, maybe the results you are referring too are using different technologies and different configurations. Just on system I've used (about 35 of them) I always notice improved performance when I manually set the affinity. To get some numbers, I just did a little test on my system. When leaving the processes open to any affinity, my CPU utilization stayed about about 70% with a peak of about 75%. When I set the affinity so each process stayed on a specific processor my CPU utilization stayed at about 75% with a peak of 80%. Which is about 5% more utilization. I'm using an Intel Quad-core set to use 75% of the processors at 100% each. I did not change those setting. Also, is it possible that since I do not give 100% processors 100% of the time that it makes a difference? I have noticed that if I give 100% of the processors 100% of the time my CPU utilization stays at 100%. However, I choose I set it to a max of 75% of the processors with 100% of the CPU time because I like the way my system runs when I keep 25% overall free from processing for BOINC.

I trust your judgement that the official test and research so far has shown a decrease in performance when an affinity is set, but I am sure that my performance increases. My request is that it would be nice to have the option to lock processes to specific affinities. To solve the frightened user problem, list a default setting and notate that the setting should remain the default for most users. I've seen plenty of other types of programs do this.

Anyways, I know I might sound argumentative, but I do appreciate your taking the time to respond and explain the reasons behind the current settings. I've been processing SETI packets for over 9 years, and my wish is to just help make possible improvements.

Thanks,
Gary




____________

OzzFan
Volunteer tester
Avatar
Send message
Joined: 9 Apr 02
Posts: 13578
Credit: 29,895,423
RAC: 16,311
United States
Message 819483 - Posted: 16 Oct 2008, 23:43:07 UTC - in response to Message 819184.
Last modified: 17 Oct 2008, 0:05:37 UTC

I don't want to argue, as I understand where you are coming from, but I'd like to point out a few things. I requested changing the affinity, not the priority level. BOINC still gives up processing power when a higher priority application needs it, even when I set the affinity levels. I, personally, see nothing wrong with putting advanced settings in advanced mode, thus the meaning of advanced mode, maybe put a disclaimer on the options.


Yes, I'm aware you're referring to affinity, not priority level. BOINC would still give up CPU time to higher priority levels, but can cause problems for priority levels set to low just like the science app.

Also, it seems that other people share the same feelings about setting the affinity and that someone felt it made enough difference that she/he actually programed a customized version of BOINC to do just that.


Yes, Crunch3r disagrees with the results of the study and programmed his own version of BOINC. Crunch3r also dislikes that BOINC does not return results immediately in new versions (v5.10.13 and later), which can cause problems with validation and/or causes more stress on the SETI servers, so he also has his version of BOINC return results immediately within 1 minute of finishing the workunit.

I wouldn't rest my case on the fact that Crunch3r disagrees with the SETI staff and thus built his own.

I would at least ask that someone do some more research into it, maybe the results you are referring too are using different technologies and different configurations. Just on system I've used (about 35 of them) I always notice improved performance when I manually set the affinity. To get some numbers, I just did a little test on my system. When leaving the processes open to any affinity, my CPU utilization stayed about about 70% with a peak of about 75%. When I set the affinity so each process stayed on a specific processor my CPU utilization stayed at about 75% with a peak of 80%. Which is about 5% more utilization. I'm using an Intel Quad-core set to use 75% of the processors at 100% each. I did not change those setting. Also, is it possible that since I do not give 100% processors 100% of the time that it makes a difference? I have noticed that if I give 100% of the processors 100% of the time my CPU utilization stays at 100%. However, I choose I set it to a max of 75% of the processors with 100% of the CPU time because I like the way my system runs when I keep 25% overall free from processing for BOINC.


The existing research is quite sound and do not display the differences in levels of CPU utilization as you do. In fact, on all of my Windows boxes (without affinity set), the processes use 98%-100% on a single core system, 49-50% on the dual cores, 24-25% on the quad cores and 12-13% on my octo-core system. The percentage is perfectly within the allowable range of error for Task Manager's calculations.

In fact, preferring to run BOINC at 75% instead of 100% because you like the way your system performs indicates that either the affinity setting is taking up too much CPU time at 100% (thus 75% giving much better response time) or that BOINC's priority is conflicting with another app of yours, causing a slower response time when using your PC.

In addition, if you have your preferences set to 75% of your processors 100% of the time (meaning three cores on a quad core machine), each process should total to 25% and no higher. If you are seeing as high as 80% between all cores, I would suggest that this is an error in Task Manager as it is impossible to add up to 80% if you have three cores running full bore (25+25+25=75% total system power). Anything higher than 75% is in fact incorrect. A point of similarity, my octo-core system, running at 100% on all cores has threads reaching as high as 13% per core (13*8=104%) as displayed by Task Manager, which is impossible as you cannot have more than 100% total system power.

In other words, I wouldn't take Task Manager's results as scientifically accurate when attempting to squeeze out more performance by setting affinity.

Anyways, I know I might sound argumentative, but I do appreciate your taking the time to respond and explain the reasons behind the current settings. I've been processing SETI packets for over 9 years, and my wish is to just help make possible improvements.


Don't worry about sounding argumentative. We're here to share ideas, and we can only get our point across if we clarify ourselves.

However, it can be quite difficult to let people know that their idea has already been tested by several volunteers and BOINC has been coded the way it has for a reason. Additional testing has been revisited at times and generally the affinity setting has shown to not be worth the time or trouble.

If you would like to know more about the results of the independent testing, I would suggest that you visit the lunatics.kwsn.net forum for more info. The group there dedicate themselves to improving the crunch times of their machines in hopes of getting more science done per clock, including taking the source code of SETI@Home and improving on it by providing 50% or more speed gains on some systems. These are the very detailed oriented people who test, log, debug and test some more on every aspect of increasing their throughput. They should be able to explain it in greater detail, including providing the data for their testing as to affinity making no difference, to providing a slow down on some systems by setting it and why it makes no sense to enable it.

Questions and Answers : Wish list : Processor usage

Copyright © 2014 University of California