¿Qué significan los hermanos en / proc / cpuinfo?

11

¿Significa la cantidad de procesadores virtuales en un procesador físico?

LedZeppelin
fuente

Respuestas:

9

Si el número de hermanos es igual al número de núcleos, entonces tiene CPU que no son hyperthreading o hyperthreading está desactivado, si el número de hermanos es 2x el número de núcleos, entonces tiene una CPU hyperthreading con hyperthreading activado. Hay un buen artículo aquí .

usuario9517
fuente
7

El número de hermanos en un procesador es el número total de unidades de ejecución dentro de ese procesador. Esto incluirá núcleos adicionales y hyperthreading.

Por ejemplo,

  1. Un Core 2 Duo aparecerá en la lista siblings : 2. Doble núcleo, sin hyperthreading.
  2. Un Xeon E5420 aparecerá en la lista siblings : 4. Doble núcleo, con hyperthreading.
  3. Un Pentium 4 con hyperthreading aparecerá en la lista siblings : 2. Núcleo único, con hyperthreading.
Scott Pack
fuente
1

En primer lugar, comprenda los siguientes términos y su contexto de uso.

  • UPC
    • Una CPU es una unidad de procesamiento.
    • Tendrá múltiples componentes para procesar las instrucciones.
    • Cada componente es responsable de diferentes operaciones, como la obtención de instrucciones, la decodificación, el proceso, la actualización, etc.
  • Núcleo
    • Una CPU puede tener múltiples conjuntos / unidades de los componentes mencionados anteriormente.
    • Si hay dos conjuntos de estas unidades, el procesador puede ejecutar dos instrucciones en paralelo.
    • Una unidad se llama Core.
    • Una CPU Duel-Core tendrá dos conjuntos idénticos de componentes. Una CPU de cuatro núcleos tendrá cuatro conjuntos idénticos de estos componentes / unidades
  • Multi-cpu / hyperthreading
    • Esto es un poco complicado. Es válido solo el contexto del Software.
    • Siempre que una instrucción esté esperando que se complete un evento externo, la CPU estará inactiva. Para utilizar mejor la CPU, algunos proveedores mantienen dos hilos de hardware y cada vez que se bloquea un hilo, el hardware cambiará a otro hilo. Este tipo de procesadores tendrá la capacidad de almacenar y restaurar estados de CPU
    • Para el software, parecerá que dos subprocesos se ejecutan en paralelo.
    • Linux considera estos núcleos hyperthreading como múltiples cpus. Porque puede ejecutar dos hilos en paralelo. Por lo tanto, verá dos unidades de ejecución (pseudo CPU).
    • Por ejemplo, las CPU Intel recientes son hipertormentadas, capaces de ejecutar dos hilos simultáneos.
  • Multi-núcleo
    • Las CPU modernas tienen múltiples conjuntos de unidades de hardware / núcleos mencionados anteriormente
    • A diferencia de hyperthreading, en realidad pueden ejecutar dos instrucciones en paralelo
    • Cada núcleo puede ser hipertrachado también
  • Multiprocesador
    • Los sistemas de alto rendimiento como los servidores y las supercomputadoras tendrán múltiples CPU físicas.
    • Puedes ver múltiples zócalos de CPU en sus placas madre
    • Cada uno puede tener múltiples núcleos. Una vez más, cada núcleo puede ser hipertrachado

Las PC modernas generalmente vienen con procesadores multi-core hyperthreaded. Por ejemplo, Linux que se ejecuta en una PC que viene con CPU Intel de cuatro núcleos hiperthreaded, verá 8 CPU (4 núcleos x 2 hyperthreads).

Los servidores modernos suelen ser sistemas de múltiples núcleos y múltiples procesadores. Un servidor típico tendrá dos zócalos, cada uno con 24 núcleos hiperprocesados. Entonces, Linux que se ejecuta en este sistema verá 96 CPU (2 Sockets x 24 Cores x 2 hyperthreads)

Hermanos

Volviendo a la pregunta real, los procesadores que comparten caché se llamarán hermanos. La organización de la caché será como (aunque variará según la arquitectura),

  • Cada núcleo tendrá un caché de instrucciones L1 y un caché de datos L1
  • Cada núcleo tendrá un caché L2 unificado
  • Todos los núcleos en un socket tendrán un caché L3 unificado
  • Normalmente no hay dos sockets que compartan caché

Considere un sistema Multi-Core-Multi-Processor con 2 zócalos. Cada zócalo tiene 24 núcleos con hyperthreading. En este caso, Linux verá un total de 96 CPU numeradas del 0 al 95. El zócalo 1 tendrá las CPU 0-47 y el zócalo 2 tendrá 48-95 (a diferencia de esto, generalmente los números se intercalarán). Para este sistema con la organización de caché mencionada anteriormente,

  • Los procesadores 0-47 son hermanos
  • Los procesadores 48-95 son hermanos
El b
fuente
0

El núcleo usa el número de hermanos para equilibrar la carga, por ejemplo;

Se ejecutan cuatro tareas en un sistema que tiene dos paquetes físicos, cada uno con dos núcleos (compartiendo caché de último nivel) y cada núcleo con dos hilos lógicos. El equilibrio de carga se inicia en el dominio multinúcleo para el primer paquete, lo que resulta en una distribución de carga igual entre todos los núcleos.

Bart
fuente
paquete es la terminología incorrecta aquí.
Wim Kerkhoff