Que CPU lógica (core) pertence a qual socket?

6

Eu preciso testar o desempenho de um programa multithread em 1 CPU, mas tenho uma máquina com duas CPUs. Eu preciso definir afinidade com essas CPUs lógicas, que compartilham seu soquete, e, ao contrário, elas se beneficiam strongmente de um número maior de FSBs. Tentei afinidade 0-7 e 8-15, mas os resultados diferem consideravelmente, sendo o primeiro mais rápido. Portanto, não sei quais CPUs lógicas compartilham seu soquete.

lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                16
On-line CPU(s) list:   0-15
Thread(s) per core:    1
Core(s) per socket:    8
CPU socket(s):         2
NUMA node(s):          4
Vendor ID:             AuthenticAMD
CPU family:            16
Model:                 9
Stepping:              1
CPU MHz:               800.000
BogoMIPS:              4000.40
Virtualization:        AMD-V
L1d cache:             64K
L1i cache:             64K
L2 cache:              512K
L3 cache:              5118K
NUMA node0 CPU(s):     0-3
NUMA node1 CPU(s):     4-7
NUMA node2 CPU(s):     12-15
NUMA node3 CPU(s):     8-11


~]$ cat /proc/cpuinfo | grep 'core id'
core id         : 0
core id         : 1
core id         : 2
core id         : 3
core id         : 0
core id         : 1
core id         : 2
core id         : 3
core id         : 0
core id         : 1
core id         : 2
core id         : 3
core id         : 0
core id         : 1
core id         : 2
core id         : 3
    
por Vladimir F 28.09.2012 / 21:11

2 respostas

4

Primeiros 8 processadores são de um chip e segundos 8 processadores de outro chip. Você pode diferenciá-lo por physical id . Quanto à diferença no desempenho - não tenho ideia no momento.

    
por 01.10.2012 / 13:22
0

A latência de 2 CPUs é importante. Leia as folhas de dados para a sua placa-mãe, e você saberá que uma delas é primordial e essencial para rodar a plataforma.

Por exemplo, você pode executar a plataforma preenchendo socket0 e socket0, socket1, mas não é possível executar a plataforma preenchendo apenas o socket1.

É por isso que você tem um desempenho diferente em cada um deles. Eles devem ser semelhantes de qualquer maneira, mas eles não serão idênticos.

    
por 16.10.2012 / 08:46