Thread 'SUGGESTION: Advanced CPU/Core/HT handling.'

Message boards : BOINC client : SUGGESTION: Advanced CPU/Core/HT handling.
Message board moderation

To post messages, you must log in.

AuthorMessage
CobraPL

Send message
Joined: 1 Oct 06
Posts: 6
Poland
Message 5871 - Posted: 1 Oct 2006, 9:50:11 UTC

1. It is already suggested: ability to set max % of CPU for computating programs.

The simplest and bad solution is to work on 100% for X seconds and then stop working for Y seconds and repeat this process. X/Y*100% will give us percentage of CPU usage ;) Such solution has one advantage - it could really cool CPU and cause FAN to be quiet. But of course this solution is stupid: e.g. gamers will suffer FPS drops for X seconds.

Harder is to really limit CPU usage to x% under Windows.

2. This should be new: ablility to set CPU affinity and/or ability to force using only selected CPUs/Cores/CPUThreads.

BOINC computation programs drop FPS in games by ~50%. But most of games support only one CPU/Core. So, it will be great to leave CPUy/COREy (IMHO y=1) for game and switch BOINC programs to CPU(s)x/CORE(s)x. x=/=y.

Of course I can set affinity in task manager (I have Core Duo). BUT! 1. Two threads work on one CORE/CPU.
2. It looks like BOINC switches affinity back to default setting after some time.

In other words: when playing games I`m forced to close BOINC - leaving one core not used. Please do something ;)

Peter
ID: 5871 · Report as offensive
ProfileJord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15581
Netherlands
Message 5872 - Posted: 1 Oct 2006, 14:53:43 UTC

2. Why not set BOINC to run on 1 CPU at all times? That option is already there in your preferences. And it leaves you a CPU to game with.

Or you could just suspend BOINC for the time being.
ID: 5872 · Report as offensive
CobraPL

Send message
Joined: 1 Oct 06
Posts: 6
Poland
Message 5873 - Posted: 1 Oct 2006, 21:01:11 UTC - in response to Message 5872.  
Last modified: 1 Oct 2006, 21:02:00 UTC

2. Why not set BOINC to run on 1 CPU at all times? That option is already there in your preferences. And it leaves you a CPU to game with.

Or you could just suspend BOINC for the time being.


Suspending is not a solution - still one core is not used.

About option: you mean in profile settings on www ? Well, I mean setting this ad hoc for client on specific machine. Also some kind of automation will be great. When application X is lauched, use only CORE(s)x.

distributed.net client has a nice option - to suspend computation when specified application(s) is/are on.
ID: 5873 · Report as offensive
ProfileJord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15581
Netherlands
Message 5874 - Posted: 1 Oct 2006, 21:10:40 UTC
Last modified: 1 Oct 2006, 21:12:21 UTC

The science applications that run under BOINC are already programmed to run at the lowest possible priority. Lower even than Windows Low is showing. This means that they will give up all CPU cycles by everything else that asks for CPU cycles. They won't release the RAM though.

If you want to give all CPU cycles to something else and have full control over it, you either exit BOINC or suspend it, so it also releases the RAM. Maybe that some day in the future someone will make a BOINC version with the lazy switch that you ask for (as it is open source, you can have a go at it yourself), but until that time...

As for the need of the preferences through the websites of the project, there's also an option to override your preferences with an XML file. Read Global preferences override for that information.
ID: 5874 · Report as offensive
CobraPL

Send message
Joined: 1 Oct 06
Posts: 6
Poland
Message 5890 - Posted: 2 Oct 2006, 17:52:16 UTC - in response to Message 5874.  

The science applications that run under BOINC are already programmed to run at the lowest possible priority. Lower even than Windows Low is showing. This means that they will give up all CPU cycles by everything else that asks for CPU cycles. They won't release the RAM though.

It really drops FPS in games by 50%. Even on priority you describe. I don`t know why. Tested on P4 2.8HT and Athlon64 3000+ Venice on many games including TES4: Oblivion.


If you want to give all CPU cycles to something else and have full control over it, you either exit BOINC or suspend it, so it also releases the RAM. Maybe that some day in the future someone will make a BOINC version with the lazy switch that you ask for (as it is open source, you can have a go at it yourself), but until that time...

Sorry, you misundertand me. I mean situation, when I can`t give all CPU cycles for most of applications, cause these apps can`t utilize dual-core CPU. So all the time most of apps use CORE1, CORE2 is free. So I want BOINC science apps to suspend (even manually) work on CORE(s) used by other apps - but on not used - not suspend. If e.g. game works on CORE1 and BOINC app on CORE2 FPS loss should be minimal. If both work on the same CORE, there will be a substantial performance loss ;)

As for the need of the preferences through the websites of the project, there's also an option to override your preferences with an XML file. Read Global preferences override for that information.

Thanks, I`ll check it :) It could help me a bit.
ID: 5890 · Report as offensive
ProfileJord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15581
Netherlands
Message 5891 - Posted: 2 Oct 2006, 18:43:47 UTC - in response to Message 5890.  

Sorry, you misundertand me. I mean situation, when I can`t give all CPU cycles for most of applications, cause these apps can`t utilize dual-core CPU. So all the time most of apps use CORE1, CORE2 is free. So I want BOINC science apps to suspend (even manually) work on CORE(s) used by other apps - but on not used - not suspend. If e.g. game works on CORE1 and BOINC app on CORE2 FPS loss should be minimal. If both work on the same CORE, there will be a substantial performance loss ;)

I don't think I misunderstood you. You want one core free for gaming and one free for your applications. BOINC can run that way by you specifying that you only want to run 1 CPU at all times. Even if that CPU is a hyperthreading one, or that 1 CPU has 4 cores, only 1 CPU is used. 1 of both HT CPUs is used. 1 core is used.

More updates on how to use these cores/CPUs is following in further versions of BOINC. Yet it still depends on you, if you want to use all CPUs or not, set by your preferences.

Do know that BOINC is a platform for preferably multiple PCs per user.
So if you don't want all of your multi CPU/multi core PCs to do this one thing, then you set on the one gaming PC that you want to use only 1 CPU. That leaves the other 1 to 3 free for your gaming.

Multiple more venues as is possible through Account Managers is possible in a future BOINC version. Then you can set your venue and thus preferences per PC.
ID: 5891 · Report as offensive
Metod, S56RKO

Send message
Joined: 9 Sep 05
Posts: 128
Slovenia
Message 5931 - Posted: 6 Oct 2006, 17:45:53 UTC

This post is not a reply to any other post in this thread speciffically, it's just my observations.

What I've observed is that BOINC combined with certain type of hardware, OS and other applications can really be a pig. According to my observations, the most problematic part is the HW part: when run on Intel P4 HT (doesn't really matter wether straight desktops or multiprocessor servers), running BOINC can really hurt performance of other processes.
One particular reason is that the two HT processors of the same core share some parts after all. If applications try to use roughly the same parts of procesors, then the gain of HTing drops on the floor. This is the reson I had to bail out to override global prefrences on one Windows Server machine during working hours. And this might also be reason for games to slow down considerably.
The other particular reason is that memory bus on previous generation of Intel procesors really sucks big time. If running some memory-intensive application (with higher priority), then the CPU usage of BOINC apps gets into single digit percents. The reason is that CPU cache doesn't contain everything needed for execution and it has to wait to access memory bus - which is congested by the other app running on the same CPU core. Generally I haven't noticed signifficant slow-down of those 'normal' apps, but I guess that some apps can also slow-down due to this reason. I guess that SMP machines with AMD processors also partly suffer this problem, noticable exception to it are CPUs with HyperTransport memory bus (e.g. Opterons), which perform really great.

If one has eg. dual-core HT machine (4 logical processors) and sets maximum CPUs available to BOINC to 2, it can still happen that everything slows down due to the first reason above. This actually depends on OS and hould generally not be a problem with modern OSes. I'm just not sure wether Windows preceeding Vista qualify as modern regarding this issue.
Metod ...
ID: 5931 · Report as offensive
ProfileJord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15581
Netherlands
Message 5958 - Posted: 9 Oct 2006, 12:59:02 UTC - in response to Message 5950.  

<start_hour>0</start_hour>
<start_hour>0</start_hour>
<net_start_hour>0</net_start_hour>
<net_start_hour>0</net_start_hour>

I think what is mean is this:

<start_hour>0</start_hour>
<stop_hour>0</stop_hour>
<net_start_hour>0</net_start_hour>
<net_stop_hour>0</net_stop_hour>

That would make more sense.
ID: 5958 · Report as offensive
ProfileJord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15581
Netherlands
Message 5960 - Posted: 9 Oct 2006, 17:56:53 UTC

David fixed it. Thank you for asking. :-)

<start_hour>0</start_hour>
<end_hour>0</end_hour>
<net_start_hour>0</net_start_hour>
<net_end_hour>0</net_end_hour>

Entries are 0 to 23 (integer). Double entries means no restriction.
ID: 5960 · Report as offensive
legolas13

Send message
Joined: 16 Oct 06
Posts: 4
Germany
Message 6036 - Posted: 16 Oct 2006, 16:52:08 UTC

Hello
it would be nice if I could define the start and end hours for each CPU seperately, if I had more than one CPU.
So it would be possible to use the whole CPU power at non-working hours and only one CPU at working hours.


ID: 6036 · Report as offensive
Pepo
Avatar

Send message
Joined: 3 Apr 06
Posts: 547
Slovakia
Message 6060 - Posted: 17 Oct 2006, 22:01:58 UTC
Last modified: 17 Oct 2006, 22:02:32 UTC

You can do it already now, this way (Dynamically modifying the way BOINC works via a script).

Maybe once will such complex settings be available through the Boinc Manager.

Peter
ID: 6060 · Report as offensive
legolas13

Send message
Joined: 16 Oct 06
Posts: 4
Germany
Message 6064 - Posted: 18 Oct 2006, 10:47:32 UTC

Thank you very much.
This solution is even better, because now I'm able to switch the number of CPUs when logging on and logging off by running the appropiate script, and I'm not determined on fixed times.

ID: 6064 · Report as offensive

Message boards : BOINC client : SUGGESTION: Advanced CPU/Core/HT handling.

Copyright © 2025 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.