Power saving in Multi core.

Michael Blizek michi1 at michaelblizek.twilightparadox.com
Tue Jun 14 12:54:16 EDT 2011


Hi!

On 13:56 Mon 13 Jun     , naveen yadav wrote:
...
> Now,comes the scenario - Let there are '2' cores in the system both
> running at a load of 40% (i.e. total load 80%), now in this case
> ideally '1' CPU is sufficient.
> So, if we make 2nd Core offline that will make the system execute
> everything on core '1'.
> 
> But will there be any power saving if we make any core offline under
> scenarios like this? Or will this have extra overhead?

Putting cores offline and running tasks on a only one core can save power, but
can also do the reverse. It depends a lot on the hardware:
- Other components like memory may need to be fully powered up, even if only
  one core is executing tasks.
- The efficiency of the CPU power supply under different loads may be widely
  different on different systems.
- The remaining core may need to run at a higher frequency. This may require
  a higher CPU voltage. Some CPU perform most efficiently if they are running
  with high voltage+frequency. Others are more efficiently at lower clock
  speeds.
- Putting all CPU to sleep may not be viable, e.g. due to lots of wakeups. In
  this case it may be more efficient to keep one core online and let all other
  cores sleep. Even if execution is less efficient, avoiding wakeups may
  compensate.

Also, if your program is single threaded, the 2nd core might not help much...

> What are the pros and cons of working like this on Multi-Core?

Pros:
- power saving
- decreased latency: If one CPU is running in shallow sleep, it might be able
  to process quick tasks faster than waking up from deep sleep would take.
Cons:
- information about hardware needed; Wrong assumptions can increase power
  usage.
- increased latency: Tasks which could normally be executed in parallel are
  not. If the load suddenly increases, there may be a delay until the system
  starts up all cores. Frequency scaling may delay this further.

	-Michi
-- 
programing a layer 3+4 network protocol for mesh networks
see http://michaelblizek.twilightparadox.com




More information about the Kernelnewbies mailing list