Hi Nathan,
Nathan Lynch wrote:
There is an "interesting" quality of POWER6 cores, which each have 2
hardware threads: assuming one thread on the core is idle, the primary
thread is a little "faster" than the secondary thread. To illustrate:
I found this feature interesting and decided to do some tests.
After some tests I found that the example you post really runs fast in
the first CPU, but a more "elaborated" application runs slower on the
first CPU.
Here is a small example:
# taskset 0x1 time -f "%e, %U, %S" ./a.out ; taskset 0x2 time -f "%e,
%U, %S" ./a.out
10.77, 10.72, 0.01
10.53, 10.48, 0.01
# taskset 0x2 time -f "%e, %U, %S" ./a.out ; taskset 0x1 time -f "%e,
%U, %S" ./a.out
10.55, 10.50, 0.01
10.77, 10.72, 0.01
# cat calc.c
#include <stdio.h>
int main(){
int j = 0;
float i = 42;
srand(123);
while (j++ < 100000000){
i = i*i + i;
i = i/2 + random(2);
}
printf("%d\n", i);
return 0;
}
# cat /proc/cpuinfo
processor : 0
cpu : POWER6 (architected), altivec supported
clock : 5000.001000MHz
revision : 3.2 (pvr 003e 0302)
processor : 1
cpu : POWER6 (architected), altivec supported
clock : 5000.001000MHz
revision : 3.2 (pvr 003e 0302)
...
Note that the IRQ are balanced among the 8 CPUs, and the machine is idle.
Do you know why I get this difference? Something wrong with the test?
Thanks
-
Breno Leitao
Linux Technology Center Brazil
Phone: +55-16-8115-3915 (T/L: 839-1293)
[EMAIL PROTECTED]
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev