Re: [boinc_dev] CPU throttling and GPU apps
The only problem is that there is no real standard for determining the temperature of the CPU (every manufacturer seems to have done it differently. Speed fan is keeping up with this, it is probably not something that BOINC developers really should be attempting to do. -Original Message- From: Charles Elliott [mailto:elliott...@verizon.net] Sent: Tuesday, July 09, 2013 7:15 AM To: McLeod, John; 'David Anderson'; boinc_dev@ssl.berkeley.edu Subject: RE: [boinc_dev] CPU throttling and GPU apps Three of my computers are in a small second floor bedroom with an asphalt roof and a box fan placed in a window close to the ground for its only ventilation. During the afternoons room temperatures are 95 F or higher, too much for the computers. If heat is the problem, it makes more sense to measure CPU/GPU temperatures and reduce the load on a device if the temperature rises above a set point, and increase it if the temps go below a lower set point. I wrote a Java program that does exactly that. It accesses temperatures by parsing a SpeedFan logging file on each computer, and affects Boinc by changing the ncpusN/ncpus line in cc_config.xml and issuing a read_cc_config RPC. Something similar might be possible for the GPUs. It seems to work. Yesterday, its first day of operation, during the afternoon it lowered the CPUs used of the three computers from 8 to 6, and then last night, starting about 10:30, it slowly raised them back to 8, where it is now. Charles Elliott -Original Message- From: boinc_dev [mailto:boinc_dev-boun...@ssl.berkeley.edu] On Behalf Of McLeod, John Sent: Monday, July 8, 2013 11:21 AM To: David Anderson; boinc_dev@ssl.berkeley.edu Subject: Re: [boinc_dev] CPU throttling and GPU apps How about changing it to not throttle apps that use less than the current throttling value? E.g. if throttling is set at .9, don't throttle a task that uses .8. -Original Message- From: boinc_dev [mailto:boinc_dev-boun...@ssl.berkeley.edu] On Behalf Of David Anderson Sent: Friday, July 05, 2013 11:50 PM To: boinc_dev@ssl.berkeley.edu Subject: Re: [boinc_dev] CPU throttling and GPU apps I changed it not throttle apps that use .5 CPUs -- David On 04-Jul-2013 2:38 PM, Eric J Korpela wrote: The only pro I can think of would be to reduce GPU use to keep temperature or power use down, but that would be better implemented as GPU throttling. On Thu, Jul 4, 2013 at 5:52 AM, Bernd Machenschalk bernd.machensch...@aei.mpg.de wrote: On 04.07.13 13:15, Heinz-Bernd Eggenstein wrote: I guess there are several pros and cons, e.g.: cons: - one one hand, GPU apps (depending on the CPU share?) get a higher OS prio (in terms of niceness) to prevent the GPU being starved. Throttling the CPU might very well cause this starvation - if a GPU app has a rather low CPU runtime share in the first place, further CPU throttling does not seem too useful. - in order to avoid GPU load to interfere with the user doing non-BOINC related stuff, there is already the setting Suspend GPU work while computer is in use. Here's one more: When not synchronized with GPU-CPU communication (kernel launches, data transfer) throtteling an App can break any running GPU task. I'm not sure whether the throtteling implementations of all BOINC Clients that are being used properly honor critical sections, nor am I that all GPU apps of all projects make proper use of these. pros: I can't think about many Actually I can't think about any. Best, Bernd ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address. ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address. ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address. ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address. ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address.
Re: [boinc_dev] CPU throttling and GPU apps
Charles: If this program is ready for public use, we could list it here: http://boinc.berkeley.edu/addons.php -- David On 09-Jul-2013 4:15 AM, Charles Elliott wrote: Three of my computers are in a small second floor bedroom with an asphalt roof and a box fan placed in a window close to the ground for its only ventilation. During the afternoons room temperatures are 95 F or higher, too much for the computers. If heat is the problem, it makes more sense to measure CPU/GPU temperatures and reduce the load on a device if the temperature rises above a set point, and increase it if the temps go below a lower set point. I wrote a Java program that does exactly that. It accesses temperatures by parsing a SpeedFan logging file on each computer, and affects Boinc by changing the ncpusN/ncpus line in cc_config.xml and issuing a read_cc_config RPC. Something similar might be possible for the GPUs. It seems to work. Yesterday, its first day of operation, during the afternoon it lowered the CPUs used of the three computers from 8 to 6, and then last night, starting about 10:30, it slowly raised them back to 8, where it is now. Charles Elliott -Original Message- From: boinc_dev [mailto:boinc_dev-boun...@ssl.berkeley.edu] On Behalf Of McLeod, John Sent: Monday, July 8, 2013 11:21 AM To: David Anderson; boinc_dev@ssl.berkeley.edu Subject: Re: [boinc_dev] CPU throttling and GPU apps How about changing it to not throttle apps that use less than the current throttling value? E.g. if throttling is set at .9, don't throttle a task that uses .8. -Original Message- From: boinc_dev [mailto:boinc_dev-boun...@ssl.berkeley.edu] On Behalf Of David Anderson Sent: Friday, July 05, 2013 11:50 PM To: boinc_dev@ssl.berkeley.edu Subject: Re: [boinc_dev] CPU throttling and GPU apps I changed it not throttle apps that use .5 CPUs -- David On 04-Jul-2013 2:38 PM, Eric J Korpela wrote: The only pro I can think of would be to reduce GPU use to keep temperature or power use down, but that would be better implemented as GPU throttling. On Thu, Jul 4, 2013 at 5:52 AM, Bernd Machenschalk bernd.machensch...@aei.mpg.de wrote: On 04.07.13 13:15, Heinz-Bernd Eggenstein wrote: I guess there are several pros and cons, e.g.: cons: - one one hand, GPU apps (depending on the CPU share?) get a higher OS prio (in terms of niceness) to prevent the GPU being starved. Throttling the CPU might very well cause this starvation - if a GPU app has a rather low CPU runtime share in the first place, further CPU throttling does not seem too useful. - in order to avoid GPU load to interfere with the user doing non-BOINC related stuff, there is already the setting Suspend GPU work while computer is in use. Here's one more: When not synchronized with GPU-CPU communication (kernel launches, data transfer) throtteling an App can break any running GPU task. I'm not sure whether the throtteling implementations of all BOINC Clients that are being used properly honor critical sections, nor am I that all GPU apps of all projects make proper use of these. pros: I can't think about many Actually I can't think about any. Best, Bernd ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address. ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address. ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address. ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address. ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address.
Re: [boinc_dev] CPU throttling and GPU apps
How about changing it to not throttle apps that use less than the current throttling value? E.g. if throttling is set at .9, don't throttle a task that uses .8. -Original Message- From: boinc_dev [mailto:boinc_dev-boun...@ssl.berkeley.edu] On Behalf Of David Anderson Sent: Friday, July 05, 2013 11:50 PM To: boinc_dev@ssl.berkeley.edu Subject: Re: [boinc_dev] CPU throttling and GPU apps I changed it not throttle apps that use .5 CPUs -- David On 04-Jul-2013 2:38 PM, Eric J Korpela wrote: The only pro I can think of would be to reduce GPU use to keep temperature or power use down, but that would be better implemented as GPU throttling. On Thu, Jul 4, 2013 at 5:52 AM, Bernd Machenschalk bernd.machensch...@aei.mpg.de wrote: On 04.07.13 13:15, Heinz-Bernd Eggenstein wrote: I guess there are several pros and cons, e.g.: cons: - one one hand, GPU apps (depending on the CPU share?) get a higher OS prio (in terms of niceness) to prevent the GPU being starved. Throttling the CPU might very well cause this starvation - if a GPU app has a rather low CPU runtime share in the first place, further CPU throttling does not seem too useful. - in order to avoid GPU load to interfere with the user doing non-BOINC related stuff, there is already the setting Suspend GPU work while computer is in use. Here's one more: When not synchronized with GPU-CPU communication (kernel launches, data transfer) throtteling an App can break any running GPU task. I'm not sure whether the throtteling implementations of all BOINC Clients that are being used properly honor critical sections, nor am I that all GPU apps of all projects make proper use of these. pros: I can't think about many Actually I can't think about any. Best, Bernd ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address. ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address. ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address. ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address.
Re: [boinc_dev] CPU throttling and GPU apps
What do we mean by 'use' a certain fraction of a CPU, anyway? AFAIK, projects have a rather crude tool by which they declare what proportion of an application's fpops are performed on the CPU - cpu_fracx/cpu_frac in the xml format of the plan class definition - and nothing else. The *scheduled* CPU usage (and I assume this is what David is referring to) is calculated by the server from this frac and the relative speeds of the host's CPU and GPU. These limited tools can lead to assumptions which are widely divergent from reality, in either direction. A concrete example: I run two hosts on GPUGrid (who should know a thing or two about GPU programming) Host 43404 is told to schedule 0.55 CPUs for each GPU task: host 132158 is told to schedule 0.667 CPUs. Not a great deal of difference. But compare the reality. http://www.gpugrid.net/results.php?hostid=43404state=3 uses typically ~900 CPU seconds per task, just 0.06 CPUs http://www.gpugrid.net/results.php?hostid=132158state=3 uses ~30,000 CPU seconds per task, or over 0.99 CPUs Both hosts are running CUDA 4.2 applications/runtime, but there are many differences between them. GPU type: Fermi/Kepler GPU driver: 310.70/314.22 Operating system: WinXP-32/Win7-64 BOINC version: v6.12.34/v7.0.64 BOINC mode: Service/User Application: Short (v6.52)/Long (v6.18) We could - conceivably - program the BOINC platform to take account of all these variables, but I suspect that would be absurdly complicated, and quite probably fruitless (from reading the project message boards, I suspect the main cause of the difference between 0.06 CPU and 0.99 CPU usage is the current handling of the newer Kepler architecture - so an application-level, rather than BOINC, issue) All-in-all, I think it would be better to go back to using the CPU throttle/thermal control feature for its original purpose - controlling the thermal output of pure-CPU apps (defined as apps which have *no* co-processor specified). If we need a thermal control mechanism for GPUs (which was the original request by Admin Team St.Petersburg), add one properly tailored to the hardware characteristics of co-processors. From: McLeod, John john.mcl...@sap.com To: David Anderson da...@ssl.berkeley.edu; boinc_dev@ssl.berkeley.edu boinc_dev@ssl.berkeley.edu Sent: Monday, 8 July 2013, 16:21 Subject: Re: [boinc_dev] CPU throttling and GPU apps How about changing it to not throttle apps that use less than the current throttling value? E.g. if throttling is set at .9, don't throttle a task that uses .8. -Original Message- From: boinc_dev [mailto:boinc_dev-boun...@ssl.berkeley.edu] On Behalf Of David Anderson Sent: Friday, July 05, 2013 11:50 PM To: boinc_dev@ssl.berkeley.edu Subject: Re: [boinc_dev] CPU throttling and GPU apps I changed it not throttle apps that use .5 CPUs -- David On 04-Jul-2013 2:38 PM, Eric J Korpela wrote: The only pro I can think of would be to reduce GPU use to keep temperature or power use down, but that would be better implemented as GPU throttling. On Thu, Jul 4, 2013 at 5:52 AM, Bernd Machenschalk bernd.machensch...@aei.mpg.de wrote: On 04.07.13 13:15, Heinz-Bernd Eggenstein wrote: I guess there are several pros and cons, e.g.: cons: - one one hand, GPU apps (depending on the CPU share?) get a higher OS prio (in terms of niceness) to prevent the GPU being starved. Throttling the CPU might very well cause this starvation - if a GPU app has a rather low CPU runtime share in the first place, further CPU throttling does not seem too useful. - in order to avoid GPU load to interfere with the user doing non-BOINC related stuff, there is already the setting Suspend GPU work while computer is in use. Here's one more: When not synchronized with GPU-CPU communication (kernel launches, data transfer) throtteling an App can break any running GPU task. I'm not sure whether the throtteling implementations of all BOINC Clients that are being used properly honor critical sections, nor am I that all GPU apps of all projects make proper use of these. pros: I can't think about many Actually I can't think about any. Best, Bernd ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address. ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address. ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address
Re: [boinc_dev] CPU throttling and GPU apps
I changed it not throttle apps that use .5 CPUs -- David On 04-Jul-2013 2:38 PM, Eric J Korpela wrote: The only pro I can think of would be to reduce GPU use to keep temperature or power use down, but that would be better implemented as GPU throttling. On Thu, Jul 4, 2013 at 5:52 AM, Bernd Machenschalk bernd.machensch...@aei.mpg.de wrote: On 04.07.13 13:15, Heinz-Bernd Eggenstein wrote: I guess there are several pros and cons, e.g.: cons: - one one hand, GPU apps (depending on the CPU share?) get a higher OS prio (in terms of niceness) to prevent the GPU being starved. Throttling the CPU might very well cause this starvation - if a GPU app has a rather low CPU runtime share in the first place, further CPU throttling does not seem too useful. - in order to avoid GPU load to interfere with the user doing non-BOINC related stuff, there is already the setting Suspend GPU work while computer is in use. Here's one more: When not synchronized with GPU-CPU communication (kernel launches, data transfer) throtteling an App can break any running GPU task. I'm not sure whether the throtteling implementations of all BOINC Clients that are being used properly honor critical sections, nor am I that all GPU apps of all projects make proper use of these. pros: I can't think about many Actually I can't think about any. Best, Bernd ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address. ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address. ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address.
[boinc_dev] CPU throttling and GPU apps
Hi all! While hunting for a bug recently, we at Einstein@Home came across a question that I would like to present for discussion here: If an app has a non zero GPU share (GPU app for short), should CPU throttling (as configured thru the preferences setting Use at most x % of CPU time) be applied to it? I guess there are several pros and cons, e.g.: cons: - one one hand, GPU apps (depending on the CPU share?) get a higher OS prio (in terms of niceness) to prevent the GPU being starved. Throttling the CPU might very well cause this starvation - if a GPU app has a rather low CPU runtime share in the first place, further CPU throttling does not seem too useful. - in order to avoid GPU load to interfere with the user doing non-BOINC related stuff, there is already the setting Suspend GPU work while computer is in use. pros: I can't think about many, maybe consistency and user expectation? Volunteer reports at E@H seem to suggest that in the current BOINC client version, GPU apps are indeed CPU throttled, right? Browsing thru the source code, my initial impression is that only NCI (non-CPU-intensive) apps are excluded from throttling. Cheers HB - Heinz-Bernd Eggenstein Max Planck Institute for Gravitational Physics Callinstrasse 38 D-30167 Hannover, Germany Tel.: +49-511-762-19466 (Room 037) ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address.
Re: [boinc_dev] CPU throttling and GPU apps
We had some discussion about this issue back in January. For most of the lifetime of BOINC on GPUs, CPU throttling has *not* been applied to GPU apps: it was dis-applied on 27 Oct 2008 - http://boinc.berkeley.edu/trac/changeset/3719268f1c3807dcac821c455090e2243133bb8d/boinc-old and re-applied on 12 Jan 2013 - http://boinc.berkeley.edu/trac/changeset/04de2936d47256edc77ba032541b096aff69b2d5/boinc-old The re-application seemed to be at the request of a single user: David wrote I checked in a change so that CPU throttling applies to GPU apps also. Can anyone think of a reason not to do this? -- David On 11-Jan-2013 11:42 PM, Admin Team St.Petersburg wrote: And here's another. In the client, the CPU has the ability to change power steering, and the GPU can not. To do. That message, and the subsequent discussion, can be followed at http://lists.ssl.berkeley.edu/pipermail/boinc_dev/2013-January/019305.html From memory (and a very quick refresh view of that thread) the main response was a request for a separate control to throttle GPU apps if desired - we concluded with The request for a separate GPU throttling preference is noted; however we're not going to get to it immediately. -- David From: Heinz-Bernd Eggenstein heinz-bernd.eggenst...@aei.mpg.de To: boinc_dev@ssl.berkeley.edu Sent: Thursday, 4 July 2013, 12:15 Subject: [boinc_dev] CPU throttling and GPU apps Hi all! While hunting for a bug recently, we at Einstein@Home came across a question that I would like to present for discussion here: If an app has a non zero GPU share (GPU app for short), should CPU throttling (as configured thru the preferences setting Use at most x % of CPU time) be applied to it? I guess there are several pros and cons, e.g.: cons: - one one hand, GPU apps (depending on the CPU share?) get a higher OS prio (in terms of niceness) to prevent the GPU being starved. Throttling the CPU might very well cause this starvation - if a GPU app has a rather low CPU runtime share in the first place, further CPU throttling does not seem too useful. - in order to avoid GPU load to interfere with the user doing non-BOINC related stuff, there is already the setting Suspend GPU work while computer is in use. pros: I can't think about many, maybe consistency and user expectation? Volunteer reports at E@H seem to suggest that in the current BOINC client version, GPU apps are indeed CPU throttled, right? Browsing thru the source code, my initial impression is that only NCI (non-CPU-intensive) apps are excluded from throttling. Cheers HB - Heinz-Bernd Eggenstein Max Planck Institute for Gravitational Physics Callinstrasse 38 D-30167 Hannover, Germany Tel.: +49-511-762-19466 (Room 037) ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address. ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address.
Re: [boinc_dev] CPU throttling and GPU apps
On 04.07.13 13:15, Heinz-Bernd Eggenstein wrote: I guess there are several pros and cons, e.g.: cons: - one one hand, GPU apps (depending on the CPU share?) get a higher OS prio (in terms of niceness) to prevent the GPU being starved. Throttling the CPU might very well cause this starvation - if a GPU app has a rather low CPU runtime share in the first place, further CPU throttling does not seem too useful. - in order to avoid GPU load to interfere with the user doing non-BOINC related stuff, there is already the setting Suspend GPU work while computer is in use. Here's one more: When not synchronized with GPU-CPU communication (kernel launches, data transfer) throtteling an App can break any running GPU task. I'm not sure whether the throtteling implementations of all BOINC Clients that are being used properly honor critical sections, nor am I that all GPU apps of all projects make proper use of these. pros: I can't think about many Actually I can't think about any. Best, Bernd ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address.
Re: [boinc_dev] CPU throttling and GPU apps
The only pro I can think of would be to reduce GPU use to keep temperature or power use down, but that would be better implemented as GPU throttling. On Thu, Jul 4, 2013 at 5:52 AM, Bernd Machenschalk bernd.machensch...@aei.mpg.de wrote: On 04.07.13 13:15, Heinz-Bernd Eggenstein wrote: I guess there are several pros and cons, e.g.: cons: - one one hand, GPU apps (depending on the CPU share?) get a higher OS prio (in terms of niceness) to prevent the GPU being starved. Throttling the CPU might very well cause this starvation - if a GPU app has a rather low CPU runtime share in the first place, further CPU throttling does not seem too useful. - in order to avoid GPU load to interfere with the user doing non-BOINC related stuff, there is already the setting Suspend GPU work while computer is in use. Here's one more: When not synchronized with GPU-CPU communication (kernel launches, data transfer) throtteling an App can break any running GPU task. I'm not sure whether the throtteling implementations of all BOINC Clients that are being used properly honor critical sections, nor am I that all GPU apps of all projects make proper use of these. pros: I can't think about many Actually I can't think about any. Best, Bernd ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address. ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address.