How will a multi-threaded program be more energy efficient?

In its Energy Efficient Software Usage Guidelines, Intel suggests that programs be developed multithreaded to improve energy efficiency.

I do not understand. Suppose I have a quad-core processor that can disable unused kernels. Suppose my code is perfectly parallelizable (synchronization overhead is negligible).

If I use only one core, I write one core in one hour, if I use four kernels, I write four kernels in 15 minutes - the same amount of kernel hours anyway. Where is the savings?

+5
source share
6 answers

I suspect this is due to the non-linear relationship between CPU utilization and power consumption. Thus, if you can distribute 100% CPU usage to 4 processors, each will have 25% load - and say 12% consumption.

, Wikipedia P = C(V^2)F. , - " 2" . , F ( , F V), - P = C(F^2)F. , 4 ( 100% ), .

F L (load) 100% ( ), :

F = 1000 + L/100 * 500 = 1000 + 5L
p = C((1000 + 5L)^2)(1000 + 5L) = C(1000 + 5L)^3

, (L) , , :

p = C(1000 + 5L)^3
p = 1000000000 + 15000000L + 75000L^2 + 125L^3

4 :

p = 4C(1000 + (5/4)L)^3
p = 4000000000 + 15000000L + 18750.4L^2 + 7.5L^3

L ^ 2 L ^ 3.

+6

โ€‹โ€‹- , .

+4

- . , , , , .., BASE. ( ), . 100 BASE, BASES , CPU BASE, .

INTEL, , , . CPU .

, , , , , , . /, BASE, .

, 8-16 CPU (, , , โ€‹โ€‹ ).

+3

, , . , , .

+2

4 4 , 4 ! , , , , 4 .

-. , ; , .

+2

, :

  • , (-) , CPU
  • , ( - ), .
  • . Intel ( ). , , .

, , .

As the 4th reason, it could be argued (note that this is only an assumption!) That Intel processors are hyperthreads, and since hypertext cores have some resources, simultaneous execution of two threads is more efficient than running a single thread twice .

+2
source

All Articles