Qual é a diferença entre CPU e Core?

10

A saída do lscpumeu pc parece -

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 69
Stepping:              1
CPU MHz:               1200.093
BogoMIPS:              3392.08
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              3072K
NUMA node0 CPU(s):     0-3

Isso significa que eu tenho 4 cpus e 2 núcleos?

alhelal
fonte
3
Um chip (soquete) com dois núcleos que aparece como um total de quatro CPUs no sistema devido a hiperencadeamento.
Kusalananda
2
@Kusalananda, The CPU(s)in lscpufornece o número de unidades lógicas de processamento central (número de cores) em uma CPU física. Não é?
ss_iwe
@saisasanka Sim. Pergunta relacionada: unix.stackexchange.com/questions/88283/…
dr_
1
@saisasanka Nesse caso, existem 4 CPUs e 2 núcleos em um soquete. O soquete é físico, assim como os núcleos. Cada núcleo é exibido como 2 CPUs ("Threads per core").
Kusalananda
CPU (s) = núcleo (s) por soquete * Thread (s) por núcleo
Amit24x7

Respostas:

9

De man lscpu:

CPU
O número lógico da CPU de uma CPU usada pelo kernel do Linux.

CORE
O número do núcleo lógico. Um núcleo pode conter várias CPUs.

SOQUETE
O número do soquete lógico. Um soquete pode conter vários núcleos.

Então, sim, você tem 4 CPUs, contidas em 2 núcleos físicos, contidas em um soquete físico.

Você pode obter as mesmas informações cat /proc/cpuinfo.

Pergunta relacionada: Então, o que são núcleos lógicos da CPU (em oposição aos núcleos físicos da CPU)?

dr_
fonte
isso significa que eu posso executar 4 instruções por vez?
Alhelal 10/05
1
Mais ou menos. Isso significa que ele pode executar 4 tarefas em paralelo. Veja HyperThreading: en.wikipedia.org/wiki/Hyper-threading
dr_
4

Para evitar confusão entre processadores lógicos e físicos,

Intel refere-se a um processador físico como um soquete .


A tecnologia Hyperthreading permite que um único núcleo do processador execute dois threads independentes simultaneamente.

Embora o hyperthreading não duplique o desempenho de um sistema, ele pode aumentar o desempenho utilizando melhor os recursos inativos, resultando em maior taxa de transferência para certos tipos importantes de carga de trabalho. Um aplicativo em execução em um processador lógico de um núcleo ocupado pode esperar um pouco mais da metade da taxa de transferência obtida durante a execução sozinha em um processador não com hyperthread.

Sumário

  • Seu sistema possui uma CPU física (vamos chamá-lo de X)
  • O Hyperthreading faz com que a CPU X se comporte como duas CPUs (CPU-X1 e CPU-X2), mas fisicamente não.
  • Cada X1 e X2 podem executar dois encadeamentos por vez, simultaneamente

Para resumir, você tem um processador físico que pode executar 4 threads simultaneamente.

Johnny Blaze
fonte
"Um aplicativo em execução em um processador lógico de um núcleo ocupado pode esperar um pouco mais da metade da taxa de transferência obtida durante a execução sozinha em um processador não com hyperthread". Isso significa que o hyperthreading faz com que um núcleo funcione levemente acima da metade de sua capacidade?
Waldir Leoncio