Posts by Bert

1) Message boards : Questions and problems : Oscillating CPU on Ubuntu 16.04 (Message 72457)
Posted 13 Sep 2016 by Bert
Yes I'm always on the Ondemand governor as well. The problem was, that tasks that were niced (to the highest level 19) would still cause the processor to jump to its highest frequency, causing heat and fan to spin up (as well as poor perf/watt), and even hogging memory bandwidth (which is not something you want when the computer is in use).

After setting the '1' in the file

the problem behavior goes away. This is a much better governor setting, and I don't know why it's not enabled by default, at least in Mint 17.3, which is Ubuntu based.

I'm assuming it's set the same way in Ubuntu.
2) Message boards : Questions and problems : Oscillating CPU on Ubuntu 16.04 (Message 72443)
Posted 13 Sep 2016 by Bert
The 'oscillating' is the result of BOINC by default running only part time, to keep operating temps down for laptops, that don't have adequate cooling to run full out. Every 10 seconds, suggests you've set the CPU time percent to 90% (run 9 seconds, pause 1 second). Set it to 100% and the pause/run alternation is gone [Computing preference: Use at most 100% of CPU time].

If thermals are the problem limit the frequency, not the duty cycle.

The best thing is to fully load a core but also make sure that core isn't running near maximum frequency or power.

Try this in a command shell:

cd /sys/devices/system/cpu/cpufreq
cd ondemand
more ignore_nice_load

if the value is set to "0" you should set it to 1 instead.

you need to do this as an admin. so type
sudo bash
then edit the file ignore_nice_load with your fave txt editor (eg pico).

Alternatively you can also use a little program i wrote:

I haven't figured out how to make the cpufreq ondemand ignore nice setting stick. so i usualy run my little program.
3) Message boards : Questions and problems : Screensaver for Linux? (Message 71009)
Posted 25 Jul 2016 by Bert
Some projects that can show graphics for some or all tasks in linux are SETI at home and . The climateprediction graphics and interactive visualizer is the most impressive looking I've seen.

I've never linked any seti graphics to a screensaver in linux though.
4) Message boards : Questions and problems : Intel Xeon Phi Coprocessor (Message 70673)
Posted 4 Jul 2016 by Bert
288 Threads, and current BOINC limited to 200 job slots IIRC... which can be overcome by setting to allow multiple clients.

Interesting bit of info.

Having most of the cores HT 3 rather than 4 threads might not impact perf too dramatically if scheduler does a good job at maximizing business of execution units. Would be an interesting test though.

The slightly inferior 64 thread version has a very nice discount; it s only a bit over $2400.

I was mistaken about these atoms being in-order; since silvermont (22nm gen) atoms have been upgraded to out-of-order execution for better single thread perf. (When loaded with max logical threads i m guessing maybe the scheduler will avoid reordering unless it s trivial.)

I imagine that these slow but massive thread capable chips will do great on tasks where memory performance is the major bottleneck and where cache misses are the usual case.
5) Message boards : Questions and problems : Intel Xeon Phi Coprocessor (Message 70511)
Posted 28 Jun 2016 by Bert
New Xeon Phi seems to be x86 compliant and permits OS boot, like a normal cpu.
So 72 core Atom for boinc :-O

Yes, I would think there wouldn't be issues running cpu threads on these as they are x86.

They're atom derived cores, but kind of like atom cores on steroids. From what I've read they have two FPU/MMX units per core and two ALUs and are very good at float; they are highly SMT/hyperthreading and run 4 threads per core. Loading a core with 4 threads will slow down per thread speed but massively speed up rate of total work done and efficiency. Like the atom they are in-order instruction CPUs; speed is sacrificed for power efficiency. Especially in an high thread scenario, hardly anything will beat these in efficiency (although some of the more efficient risc and arms i would guess, might).

The total of 288 threads is spectacular but these are anything but cheap. Even if the price goes down they still will cost about $100 per core. We are talking ballpark prices $5k-$10k for phi units.)

An FX6300 ($100/CPU) or Athlon X4 845 costs just $17 per core and are high performance out of order CPUs; the latter being fast and very efficient if you clock around 2.4GHz-3.1GHz. The Old FX6000 or 8000s piledriver cores are decenty efficient if you clock down under 2.5GHz (laptop speeds). On the Athlon X4 you can run 2 or 3 threads while computing and using the desktop; so I'm quite happy with that one as a BOINC puter. AMD Zen chips will be 8c/16t probably with very good $/perf if Polaris prices are any gauge; I hope to try one this coming winter.
6) Message boards : Questions and problems : computer fan runs almost all of the time (Message 69388)
Posted 2 May 2016 by Bert
If you're using windows you can select another power profile with maximum CPU frequency of something like 95% rather than 100%. This should keep the processor from entering highly energy inefficient turbo boost frequencies.

It might also be some other application. On windows pressing ctrl-alt-del lets you enter the System monitor utility to monitor what processes are running in the background and are taking up CPU time. Often, something that automatically starts up at login, like Skype, is to blame.

If you're running linux, there usually is a frequency selection taskbar appllet you can add. Or, you can on the command line set the frequency via the command


Eg., the below should set the frequencies to 1.9GHz, for cores 1-4:

cpufreq-set -c 0 -u 1.9GHz
cpufreq-set -c 1 -u 1.9GHz
cpufreq-set -c 3 -u 1.9GHz
cpufreq-set -c 2 -u 1.9GHz

The command cpufreq-info lets you know what frequencies are available. (this is optional, since the frequency set command improvises pretty well if you don't give the exact frequency).
7) Message boards : Questions and problems : Percentages of the CPU cores vs. percentage of time (Message 69095)
Posted 21 Apr 2016 by Bert
"Is your 8 core Hyperthreaded? If so, limiting to 4 cores"

Quad core 8-thread CPU, you mean (8 logical cores, 4 actual cores); or so I thought.

Also, I meant to say CMT not SMT (SMT won't be there for another half year).

You could also do a 75:25 test by loading one physical core 100% with two threads. Then compare that with a fully loaded CPU (8 threads) that are active 25% of the time.
8) Message boards : Questions and problems : Percentages of the CPU cores vs. percentage of time (Message 69089)
Posted 21 Apr 2016 by Bert
If you're using linux or unix you can use the taskset command to possibly limit the physical CPUs.

I briefly used to have a HT dual core (i5 4200u) but when I had it, I wasn't aware of taskset, and I also never looked into out how the core numbering was arranged. So, I'm not 100% sure, but I'll take a hopefully good guess.

If it's anything like the AMD SMT arrangment, the (logical) cores 0 and 1 correspond to the first module, cores 2 and 3 correspond to the second module, cores 4 and 5 correspond to the third module, etc etc.

If this is the case (i.e. module is analogous to a HT physical core), then you could try tasksetting all boinc tasks to restrict them to a range of logical cores (and corresponding physical cores).

HT actually works really well and wonders for efficiency, if the code depends very much on the RAM like many numerical solutions do, since the data is often too large to fit in the CPU caches.

Anyways, the goal here is to fully load a physical core with two threads so that HT is employed, and that you either have a fully loaded physical core, or a fully idle physical core.

Your 80/20 example is a little hard, but I'm going to try a 50/50 example here.

We'll compare using half the cores (2 physical cores or analogously, "modules") all the time to using all 8 (logical) cores half the time.

For the former case, set 100% compute time and 4 threads in BOINC manager, and then follow this with four tasksets under a unix command line:

taskset -p -c 4-7 pid1
taskset -p -c 4-7 pid2
taskset -p -c 4-7 pid3
taskset -p -c 4-7 pid4

where pid1, pid2, pid3, and pid4 are the boinc threads.

And the latter case is easy, you just set 8 threads running at 50% in boinc manager.

I have a sort of script that will automatically taskset boinc tasks (or any threads with nice value of 19 for that matter) to a range of specified logical cores.

You have to modify the code to suit what you want it to do:

There are also some scripts in there that will adjust the CPU clock. They won't be relevant and you can modify them to do nothing if all you want to do is run this performance test.

If your goal is to reduce heat or performance per watt then you should really look into running your CPU at reduced speeds. Consumer CPUs are set up to be clocked for performance, not performance per watt. You manually clock them somewhat lower if efficiency and low fan noise is what you want.
9) Message boards : Questions and problems : BOINC does not see that VirtualBox is installed (Ubuntu 15.10) (Message 67837)
Posted 17 Feb 2016 by Bert
This worked wonders for me too!! In particular, my BOINC GPU's had not been working in well over a year (possibly going close to 2 years). It must have been the new BOINC version(s).

(I tried the xhost + but it only messed up my X config.)

Reverting back to 7.6.22 has pretty much solved all my BOINC problems. I hope any newer linux versions get patched up so they have all the functionality of 7.6.22

Many thanks to both of you
10) Message boards : Questions and problems : Building an energy-efficient BOINC Computer / Cluster (Message 67162)
Posted 25 Jan 2016 by Bert
a rasberry pi cluster would be hard to beat for those boinc projects that do support arm well (and assuming those projects do okay with the amounts of RAM and storage that the pi's have).

The biggest thing is that it's an investment that takes money and time. During the heating season, there is no to little such cost when using available laptops and computers around the house.

Often I run desktops in the coldest months of winter season, mostly just for boinc. My laptop is my main computer I use, but it also runs boinc; and in the winter it's on all day (and some nights too).

For anyone on linux with a quadcore or higher, I use this program to run boinc while I use the computer or when away. This newest version detects idle states and frees up more cores for boinc when idle is detected. Restricting the clockrates to about or under 75% of the max greatly helps with power consumption (as well as that annoying fan noise). When the user active, there's an asymmetric frequency setup so that single and dual threaded performance is optimized, and to keep boinc tasks from hogging up memory bandwidth.

The program can be modified for higher core counts (have tested previous versions on hex and octa cores) without too much difficulty. Just edit a few lines, mostly or all in the #define section.

Try it out; feedback, bug reports, suggestions are appreciated.
11) Message boards : Questions and problems : Building an energy-efficient BOINC Computer / Cluster (Message 66636)
Posted 7 Jan 2016 by Bert
You get best efficiency at full load but lower CPU clock rate.

Run your old laptop at 1GHz rather than the full 1.73GHz and the energy usage will dramatically go down. You can feel this from the exhaust heat, or by looking at battery life, or by measuring it with a watt meter at the power outlet.

Futhermore, many numerical calculations (like weather modeling or large physical simlations) are limited by the speed of the system memory. So you can run your CPU at 4GHz and much of the CPU's time will be spent waiting for memory. SMT or hyperthreading works well to reduce those wasted cycles. So does downclocking your CPU to say 2GHz. To the CPU the memory will now seem twice as fast.
12) Message boards : Questions and problems : Building an energy-efficient BOINC Computer / Cluster (Message 66626)
Posted 6 Jan 2016 by Bert
Downclocking your CPU clockspeed just 20% likely will make a heck of a difference in power consumption. I've hooked up a watt meter (kill-a-watt) and looked at various processors. Some are quite extreme, like going from 3.8ghz to 3 ghz will approximately halve the power consumption. So if you set your desktop processor to some moderate speed, about 1/4 to 1/3 less than the rated speed then likely your perf/watt will improve greatly.

I tried to downclock a GPU card but sadly the driver software (ati catalyst) only lets people overclock--underclocking is for some reason strictly forbidden.
13) Message boards : The Lounge : Computing slowly without spinning up a laptop fan (Message 64336)
Posted 17 Sep 2015 by Bert
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):

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.
14) Message boards : Questions and problems : For linux, is there an easy way to run variable number of BOINC tasks depending on whether idle? (Message 63862)
Posted 27 Aug 2015 by Bert
thanks; I poked around here, but couldn't find the thread yet.

The man page for boinccmnd does show that it could be possible. It'd take me ages though as I'm a novice programmer, especially when it comes to command scripts which I hardly ever do and don't quite grok.
15) Message boards : Questions and problems : For linux, is there an easy way to run variable number of BOINC tasks depending on whether idle? (Message 63858)
Posted 26 Aug 2015 by Bert
that is, is there an automatic way to do this?

For example, I'd like to run 2 tasks while the system is in use, and 4 tasks if the system has been idle for a while. (BOINC manager 7.4.23 only has a compute-while-in use option, so it's either totally on or totally off.)

TIA for any pointers
16) Message boards : The Lounge : Computing slowly without spinning up a laptop fan (Message 63805)
Posted 24 Aug 2015 by Bert
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.

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).

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.

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.