Questão Qual CPU lógica (core) pertence a qual socket?


Eu preciso testar o desempenho de um programa multiencadeado 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 fortemente 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 o 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

6


origem


Você poderia postar complete / proc / cpuinfo por favor - Serge
Está aqui, provavelmente muito longo para caber na questão. pastebin.com/MczJDjNQ - Vladimir F
Tem certeza de que você é só agendando seu programa para rodar nesses núcleos? Tente executar seu teste de desempenho com o aplicativo sendo executado com prioridade em tempo real (ou o mais alto possível), para evitar que outras partes do SO interfiram. Do seu Pastebin, você / Serge está correto (CPUs 0-7 são o primeiro processador físico, 8-15 são o segundo). - Breakthrough


Respostas:


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


4





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. Eles devem ser semelhantes de qualquer maneira, mas eles não serão idênticos.


0