¿Por qué Apple Activity Monitor informa que mi Mac con una CPU Intel i5 Ivy Bridge de doble núcleo tiene 4 núcleos?

Acabo de recibir una nueva Apple MacBook Pro 13", de mediados de 2012, que tiene una CPU Intel i5 Ivy Bridge de doble núcleo. Cuando ejecuto el Monitor de actividad y enciendo la ventana flotante de la CPU, muestra un gráfico de 4 barras (que indica 4 núcleos).

En mi MacBook Pro anterior con un procesador Intel Core 2 Duo de doble núcleo, el Monitor de actividad solo mostraba un gráfico de 2 barras (que indicaba 2 núcleos).

¿Por qué el Monitor de actividad parece indicar que mi Mac tiene 4 núcleos, cuando claramente no es así?

Creo que esta es tu respuesta: superuser.com/questions/216110/…

Respuestas (1)

Esta es una tecnología llamada Hyperthreading que admiten los chips i5.

Significa que dos subprocesos pueden ejecutarse simultáneamente en cada núcleo, lo que da como resultado dos núcleos virtuales adicionales. El Monitor de actividad de OS X solo muestra núcleos virtuales, no núcleos físicos . Asimismo, un chip de cuatro núcleos tiene ocho núcleos virtuales y eso es lo que se presenta en el Monitor de actividad.

En resumen:

  • 1 CPU
  • 2 núcleos físicos
  • 4 núcleos virtuales (2 por núcleo físico)
Está bien, pero... Si dos subprocesos pueden ejecutarse al mismo tiempo, cada subproceso solo puede ejecutarse a la mitad de la velocidad normal como máximo, ¿no? Y digo máximo , entra la ley de Amdahl…
No es así... ejecutar una instrucción implica múltiples pasos (leer de la memoria, establecer registros, ejecutar, almacenar resultados, cambiar de contexto, etc.) hperthreading permite que 2 subprocesos se ejecuten en diferentes etapas del proceso simultáneamente sin perder velocidad.
Este comportamiento se debe a la tecnología SMP de Intel, a la que denominan "Hyper-threading", como lo señala @kremalicious. También es importante señalar que Hyper-threading no se relaciona con la canalización (como lo sugiere @Basic), sino con superescalar. Aquí hay un ejemplo simple para comprender la arquitectura superescalar: en lugar de una unidad aritmética, tenemos, digamos, dos copias de la misma (una para cada núcleo virtual), de modo que los cálculos se pueden realizar en paralelo en diferentes operandos de datos. Por lo tanto, los núcleos virtuales no comparten el tiempo de p
@AmanNoug Tienes toda la razón. Mi error.