Computing slowly without spinning up a laptop fan

Message boards : The Lounge : Computing slowly without spinning up a laptop fan
Message board moderation

To post messages, you must log in.

AuthorMessage
Bert

Send message
Joined: 24 Aug 15
Posts: 16
United States
Message 63805 - Posted: 24 Aug 2015, 21:56:19 UTC

If anyone would be interested in testing an idea to more nicely run BOINC processes on Linux boxes with many idle cores (quad core or higher), I've finally been able to automate putting BOINC processes on downclocked CPU cores.

I've found that running BOINC processes causes some CPU cores to go into turbo clockrates and create quite a bit of heat and sometimes significantly decreases the responsiveness of the system. So, downclocking a few cores to a fixed low and energy efficient clock rate seems to correct those major shortcoming of BOINC computing while using the computer.

Downclocking also saves energy in the non-heating season and reduces fan noise. Conversely, letting the CPU enter turbo-clocks is highly inefficient (FLOPS/Watt falls off a cliff) and, energy-consumption-wise, doesn't make much sense for tasks that are in no hurry to be completed.

If anyone is interested in testing or further developing such a system, here is the very basic prototype C program that I'm now testing, which helps me automatically place those BOINC tasks on the downclocked cores.

http://ee.freeshell.org/runNice1919/slowNice19.c


Below (see directory below) are some the cpu-frequency profiles (scripts) that work for me on my A8 (llano) laptop processor; in my case, the profiles downclock two cores, and I dedicate these two cores to the two available CPU's set in the BOINC manager preferences. You would need to modify these to suit your hardware with sensible clock rates suitable for your hardware. Note, I have not tested this with hyperthreading (SMT) CPU's (nor CMT CPU's yet). I intend to test it with Piledriver based CMT processors next month and expect it to work (since they are basically like single threaded cores).

http://ee.freeshell.org/runNice1919/

One thing to note is that such a configuration only works well if there are idle cores available. This will depend on the software you run and your hardware. For me, I often use my laptop just for browsing with Firefox, which uses just two out of my four cores; the setup is well suited here. However, when I use Google Chrome, the setup is less suitable, because Chrome distributes the CPU load across all available cores---so it does end up slowing down system responsiveness in such a case.

I would hope that eventually smart automatic profile switchers within BOINC front end apps could one day automatically switch into such modes; and change the percentage of CPUs made available for BOINC based on load and on whether the users are idle or active.
ID: 63805 · Report as offensive
Bert

Send message
Joined: 24 Aug 15
Posts: 16
United States
Message 64336 - Posted: 17 Sep 2015, 11:52:59 UTC - in response to Message 63805.  

Hi guys, with the nice cooler Fall weather ahead I wish you all happy BOINC crunching.

Since last posting I've managed to test the program on a CMT desktop processor (Steamroller/Athlon 860k). Although it would let me downclock cores, according to my kill-a-watt meter, there was no energy saved by downclocking cores 1 and 2, and letting 0 and 3 run high. It seems on CMT processors, the cluster containing CPUs 0 and 1 will run at the rate of the highest clock of 0 and 1.

So, a small change was needed; cores 2,3 are now what BOINC tasks get restricted to. I also added some options to how the program will quit. I have to note that the power savings on downclocking half the steamroller desktop cores are not nearly as significant as what I saw with my laptop's k10 cores; I think the cache system and memory controller still will run at the rate of the highest clocked cluster. I saw temps drop a little, but the wattage of the system was not dramatically different. I might also try out my watt meter sometime on an FX-6300 (6 PD cores) for more testing, and to see it's the same deal.

Here is the current version (see the .c file):
http://ee.freeshell.org/slowNice_ver0.2/

The most exciting thing is that I think I can make changes for the next version, where the program will detect whether the user is idle, and restrict and unrestrict computing for BOINC tasks for a variable BOINC load, as well as automatically change clock rates for decent energy efficiency when the user is idle and away.

I think moderate clocks and full loads will get the best efficiencies. What I observed with the Athlon, was that power was quite good at 3GHz, not so good at 3.5GHz, and just terrible at 3.8 and the turbo clocks--wattage wise and temperature wise, spinning the fan up to max and running the CPU near max temperatures.
ID: 64336 · Report as offensive

Message boards : The Lounge : Computing slowly without spinning up a laptop fan

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