El número de núcleos de CPU parece incorrecto

14

ingrese la descripción de la imagen aquí

Como muestra la imagen, el número de procesadores es 4.

Pero Intel i5-4210U tiene solo 2 núcleos como se muestra a continuación. (Especificaciones propias de Intel).

ingrese la descripción de la imagen aquí

Entonces, si i5-4210U tiene solo 2 núcleos, ¿qué indica "4" en la primera foto?

lscpu da este resultado:

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:               989.531
BogoMIPS:              4788.74
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              3072K
NUMA node0 CPU(s):     0-3
foxtrot9
fuente
10
Debido a que tiene Hyperthreading , lo que significa que la CPU presenta cuatro núcleos al sistema operativo, en lugar de solo los dos físicos, para mejorar el rendimiento. (" Número de subprocesos " de la hoja de especificaciones es lo que le muestra la información de la CPU en Ubuntu)
JonasCz - Reinstale Monica el
3
La otra forma de descubrir esto es hacer lscpuy mirar CPU(s), Thread(s) per corey Core(s) per sockety Socket(s).
edwinksl
@edwinksl, resultado agregado de lscpu.
foxtrot9
2
Por lo tanto, tiene 4 "CPU", también conocidos como núcleos lógicos, 2 subprocesos por núcleo físico (esta es la parte de hyperthreading), 2 núcleos físicos por socket y 1 socket. 4 = 2 * 2 * 1.
edwinksl
no escuchaste hyperthreading que existe desde pentium 4?
phuclv

Respuestas:

31

Su CPU tiene solo 2 núcleos, pero admite 4 hilos concurrentes .

Esto se logra mediante la tecnología Hyper-Threading de Intel que permite ejecutar dos subprocesos separados en paralelo al mismo tiempo en un solo núcleo.

Entonces, 2 núcleos x 2 hilos por núcleo significa 4 hilos por CPU.

Byte Commander
fuente
1
Sé un poco acerca de los hilos, así que tengo curiosidad por saber cómo se puede lograr a nivel de hardware. Me refiero a 2 hilos por CPU?
foxtrot9
77
Realmente no puedo comenzar a explicar todo el concepto detrás de Hyper Threading aquí, esto explotaría la respuesta. En cambio, me gustaría sugerirle que lea el artículo de Wikipedia correspondiente o alimente su motor de búsqueda favorito con "hyperthreading".
Byte Commander
66
En resumen, podemos decir que un núcleo con capacidad de hyperthreading tiene algunos elementos (estado arquitectónico, es decir, los registros, etc.) duplicados, mientras que otros (motor de ejecución, caché) se comparten.
Byte Commander
55
@ foxtrot9 básicamente, un solo hilo de ejecución generalmente no usa cerca del 100% del núcleo de la CPU: la CPU pasa tiempo esperando que los datos se carguen de la memoria, y cualquier instrucción dada no usa todos los pequeños circuitos (ejecución unidades) en el núcleo que hacen varias cosas. HT permite que dos hilos de ejecución compartan el núcleo, por lo que uno puede ejecutarse mientras el otro está esperando, o ambos pueden ejecutarse si usan conjuntos disjuntos de unidades de ejecución. Pero debido a que los dos hilos tienen que compartir recursos, a veces uno detiene la ejecución del otro, por lo que no es tan rápido como 2 núcleos completos.
hobbs
@hobbs Explicación detallada pero simple, ¡genial! Gracias por este comentario informativo :)
Byte Commander
3

Como puede ver en la imagen que proporcionó de Intel, el número de subprocesos es 4.

Entonces diría que Ubuntu muestra el número de subprocesos y no los núcleos

Nico T
fuente
1

En el procesador i5-4210 de Intel hay 2 núcleos físicos que se dividen en 2 núcleos lógicos; Estos núcleos lógicos se logran mediante la tecnología de hiperprocesamiento de Intel. Por lo tanto, es un total de 4 núcleos como se muestra en la imagen. Esta información también se da en la otra foto.

Moksh
fuente
No sé por qué la gente rechaza tu respuesta, lo que has dicho es cierto.
Anomalía virtual el
La gente es tonta entonces, no me importa.
Moksh
Solo para respaldar esta respuesta, Wikipedia dice: "Para cada núcleo de procesador que está físicamente presente, el sistema operativo aborda dos núcleos virtuales (lógicos)".
Anomalía virtual el
Thnx @lightswitchr
Moksh
1
Creo que la gente está votando negativamente porque dijiste que hay dos núcleos físicos y dos núcleos lógicos. Eso no es cierto, cada núcleo físico se divide en dos núcleos lógicos, por lo que hay cuatro núcleos lógicos (dos que se ejecutan en cada núcleo físico).
Runemoro