2 wishes regarding CPU usage

Questions and Answers : Preferences : 2 wishes regarding CPU usage
Message board moderation

To post messages, you must log in.

AuthorMessage
Rept-Tile
Avatar

Send message
Joined: 18 Oct 03
Posts: 20
Credit: 28,144,831
RAC: 0
Russia
Message 681090 - Posted: 19 Nov 2007, 12:49:17 UTC
Last modified: 19 Nov 2007, 13:18:34 UTC

Hi all, I just posted following 2 into "wish list" forum, but would like to discuss it too, since didn't find such questions in nearest forum pages.

Both are belonged to the situation for offline multi-CPU with HT crunching computers at the moment when tasks are almost finished and the tasks actual number is less than nominal.
(Please drive me to the topic link if similar suggesstions have been asked already, thanks in advance).

1. Make an option in client preferences to include or to not include HT-emulated processors while counting a nominal number of simultaneous tasks. Now it's always equal to the number of CPUs (both real and emulated).

2. Make an option in client's behaviour to increase the percentage of using the CPU for avery active thread.
For example. I have 4 CPUs and nominal count of simultaneous is 4 too, and I set 100% of summary CPU usage in "Preferences":
- While the computer is crunching 4 tasks, the percentage of CPU usage for every application thread is 25%.
- When one of 4 tasks is finished (3 remaining and no new tasks by some reason) every thread is still using 25%, it makes 75% of total CPUs' usage in sum.
- What do I want in a last case: to have an option to automatically increase a percentage for every thread to 33.333..% to make a summary usage of 100% when the actual number of WUs becomes 3.

Thanks.
ID: 681090 · Report as offensive
Aurora Borealis
Volunteer tester
Avatar

Send message
Joined: 14 Jan 01
Posts: 3075
Credit: 5,631,463
RAC: 0
Canada
Message 681137 - Posted: 19 Nov 2007, 14:50:52 UTC
Last modified: 19 Nov 2007, 14:54:09 UTC

I'm no expert but from I've learn the CPU usage is governed by the OS. I'm guessing (your system is hidden) that your computer is running Windows. The OS shows percentage used as a fraction of the number of CPU, real or hyperthreaded. The percentage of usage available is 100%/number of CPU for each CPU. A 4 core system (real or emulated) is shown as 25% each at full usage.

Hyperthreading is turn on in the system BIOS. I don’t know (but doubt) if you can activate it for only a portion of the CPUs in multicore systems or that there is a way of controlling hyperthreading at the OS level.

Boinc gets its information for the number of CPU from the OS and has no way of knowing whether the CPU are real or emulated. At the moment all that can be done is assign one WU per available CPU.

The Boinc developers have discussed the possibility of projects multithreading their applications and how Boinc could distribute these threads across multiple available CPUs. This is not simple to implement and presents many hurdles to overcome. It will likely to take a long time before the projects are ready and for Boinc to do this.
ID: 681137 · Report as offensive
Rept-Tile
Avatar

Send message
Joined: 18 Oct 03
Posts: 20
Credit: 28,144,831
RAC: 0
Russia
Message 681148 - Posted: 19 Nov 2007, 15:54:35 UTC
Last modified: 19 Nov 2007, 16:00:09 UTC

Hi Aurora and thanks for your answer.
Yes, I use BOINC under Windows 2003 server on 2*Xeon with HT (some details bellow, if matters).

Aurora Borealis wrote:
Hyperthreading is turn on in the system BIOS. I don’t know (but doubt) if you can activate it for only a portion of the CPUs in multicore systems or that there is a way of controlling hyperthreading at the OS level.

Correct, it's impossible, but it's usual to portion the CPU time, just like BOINC does.

Aurora Borealis wrote:
Boinc gets its information for the number of CPU from the OS and has no way of knowing whether the CPU are real or emulated. At the moment all that can be done is assign one WU per available CPU.

No, You can see the output from any CPU identifier (like CPU-Z) to conclude if Hyper-threading is on and count the number of real and emulated CPUs, in conjunction with a "bare" number of processors returned by OS. For example (in one of my servers):
OS returns number of CPUs: 4. (let's name it O)
CPU-Z output:
...
Number of processors 2 (P)
Number of cores 1 per processor (C)
Number of threads 2 (max 2) per processor (T)
Name Intel Xeon
Code Name Nocona
Specification Intel(R) Xeon(TM) CPU 3.00GHz
...
Basing on this data, we can make something like a next simple estimating (in pseudocode):
get O, P, C, T
if (O > P*C) AND (O = P*C*T) then WeHaveHT

and after this, if user turns off future "count HT cpus" option, we can take a number of WU as P*C (or O/T) for 100% of CPUs usage.

Aurora Borealis wrote:
The Boinc developers have discussed the possibility of projects multithreading their applications and how Boinc could distribute these threads across multiple available CPUs. This is not simple to implement and presents many hurdles to overcome. It will likely to take a long time before the projects are ready and for Boinc to do this.

I see.. Were those discussions in public? It would be interesting to read them.
ID: 681148 · Report as offensive
Aurora Borealis
Volunteer tester
Avatar

Send message
Joined: 14 Jan 01
Posts: 3075
Credit: 5,631,463
RAC: 0
Canada
Message 681154 - Posted: 19 Nov 2007, 16:11:29 UTC
Last modified: 19 Nov 2007, 16:16:28 UTC

I believe I saw the possible use of multithreading of application discusion on the dev or projects mailing list several months ago. Nothing recently that I can recall.
ID: 681154 · Report as offensive

Questions and Answers : Preferences : 2 wishes regarding CPU usage


 
©2024 University of California
 
SETI@home and Astropulse are funded by grants from the National Science Foundation, NASA, and donations from SETI@home volunteers. AstroPulse is funded in part by the NSF through grant AST-0307956.