Multicore CPU energy requirement and load balancing
Hire the world's top talent on demand or became one of them at Toptal: https://topt.al/25cXVn
and get $2,000 discount on your first invoice
--------------------------------------------------
Take control of your privacy with Proton's trusted, Swiss-based, secure services.
Choose what you need and safeguard your digital life:
Mail: https://go.getproton.me/SH1CU
VPN: https://go.getproton.me/SH1DI
Password Manager: https://go.getproton.me/SH1DJ
Drive: https://go.getproton.me/SH1CT
Music by Eric Matyas
https://www.soundimage.org
Track title: Techno Bleepage Open
--
Chapters
00:00 Multicore Cpu Energy Requirement And Load Balancing
00:34 Answer 1 Score 0
01:10 Answer 2 Score 4
02:58 Accepted Answer Score 6
04:31 Answer 4 Score 0
05:05 Thank you
--
Full question
https://superuser.com/questions/171362/m...
--
Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...
--
Tags
#cpuusage #powerconsumption
#avk47
ACCEPTED ANSWER
Score 6
IMO this question is simply unanswerable in the general case.
On my desk I have one of these new-fangled Core i7-980x 6-core TurboBoost enabled CPUs. If you load up a single core on this machine, it will boost the clock speed of that core, thereby increasing the power consumption of the CPU, so that will make for a huge difference. This CPU as well as other, more modern CPUs can partially de-power inactive cores, increasing the power savings. That's not as true on older CPU models.
Keep in mind that the work that you have to do with one core will necessarily be different than the work you do with multiple cores. If it's the case that you can spread the load out onto multiple cores, you'll find that a lot of extra time will be spent on the single core performing expensive context switches, and your performance will suffer.
Anyway, the problem has too many variables to really answer. One could go on and on about the different types of loads, and anyone who tries to benchmark to get an answer will end up (probably inadvertently) making apples-to-oranges comparisons which don't apply in other use cases.
Oh, and one more thing. Most people will probably quote efficiency in terms of power. You don't want to fall into that trap. Since the time to process the loads will necessarily be different depending on how the loads are balanced, you must integrate the result over time to find the net amount of energy used to complete the jobs in order to arrive at a credible result.
ANSWER 2
Score 4
I did some tests today using this computer (Intel C2D T8100) and using optimized SETI@Home applications from lunatics installer 0.36. I used M$ Joulmeter to calculate power consumption. I measured consumption tree times. First, I let BOINC take 100% cores and 100% CPU time and let it run for one hour. Processor was consuming 20W and CPU time graphs from task manager were flat at 100%. Average power consumption of my computer was 45.05W and rising and at the moment I stopped test power consumption was 46.18W.
In second test, I set BOINC to take 50% of available cores and 100% of CPU time and let it run for one hour. CPU power consumption varied between 12W and 13W. Average consumption was 42.72W and rising. At the moment I stopped the test, consumption was 44W. In order to make CPU time graph for targeted core be flatline, I set affinity of program to one core and priority to high. The graph for other core showed somewhat higher than normal CPU time use.
For the third test I set BOINC to use 100% of available cores and 50% of CPU time. Power consumption varied in large jumps between 5W and 17W. Average power consumption after one hour of testing was 39.96W and falling. CPU time graphs looled like /\/\/\/\/\/\/\/\/\/\/\/\/\
. Spikes were expected because of the size of time units used by BOINC.
So I believe that it is more efficient to use two cores running at half load than to run one core at full load.
And yes, I know that for a proper study much more samples are needed, but at the time I don't have enough computers or time to do proper statistics.
ANSWER 3
Score 0
The answer to your question is twofold: If you are running highly vectorizable, parallel code, then balancing the load over multiple cores is always more efficient. The cores will run at lower loads releasing less heat than a single core that is pushed to it's limit. On the other hand, if your code is not parallelizable, then running it on multiple cores is less efficient because of the number of cache misses that will occur due to dependencies across the code. This might still generate less heat, but it will definitely take longer to complete your task compared to running it on a single core.
ANSWER 4
Score 0
Your question as asked has too many unknowns. Are you asking about time efficiency or energy efficiency? Non parallel code or parallel code? Single job or average desktop multi-tasking? If you've got an energy bill over $1000 / month for your computers then it MIGHT be worth a worry or two. Otherwise you can't save enough to make the problem worth solving. Fun to talk about - but if you've got a serious problem the best answer is : try some different things and see what works.