Message boards : BOINC client : SUGGESTION: Advanced CPU/Core/HT handling.
Message board moderation
Author | Message |
---|---|
Send message Joined: 1 Oct 06 Posts: 6 |
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 |
Send message Joined: 29 Aug 05 Posts: 15581 |
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. |
Send message Joined: 1 Oct 06 Posts: 6 |
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. 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. |
Send message Joined: 29 Aug 05 Posts: 15581 |
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. |
Send message Joined: 1 Oct 06 Posts: 6 |
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.
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. |
Send message Joined: 29 Aug 05 Posts: 15581 |
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. |
Send message Joined: 9 Sep 05 Posts: 128 |
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 ... |
Send message Joined: 29 Aug 05 Posts: 15581 |
<start_hour>0</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. |
Send message Joined: 29 Aug 05 Posts: 15581 |
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. |
Send message Joined: 16 Oct 06 Posts: 4 |
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. |
Send message Joined: 3 Apr 06 Posts: 547 |
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 |
Send message Joined: 16 Oct 06 Posts: 4 |
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. |
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.