¿Un procesador HyperThreaded de cuatro núcleos realmente tiene 8 "núcleos"

¿Un procesador HyperThreaded de cuatro núcleos realmente tiene 8 "núcleos"

Tengo una Mac Quad Core i7 de principios de 2011. Debido al hyperthreading, muchos programas informan de 8 "núcleos". Si tuviera que escribir un programa que se ejecute en paralelo, ¿podría iniciar 8 instancias de este programa o solo 4?

Entiendo que puedo iniciar tantos subprocesos como quiera, pero ¿vería 4 u 8 instancias del programa ejecutándose en paralelo?

Respuesta1

El procesador Intel Core i7 tiene 4 núcleos físicos, pero cada núcleo tiene la capacidad de ingresar hasta 2 subprocesos a la vez, lo que muestra un total de 8 subprocesos para el sistema operativo en forma de "CPU lógicas disponibles".

En realidad, un único núcleo solo puede manejar un subproceso a la vez, pero tiene mecanismos especiales de cola/temporización/programación para permitir que 2 subprocesos estén en diferentes etapas de la "canalización" al mismo tiempo. Esto permite que la CPU finalice 2 subprocesos antes de lo que lo haría si solo manejara uno a la vez. Debido a que ambos subprocesos comparten la misma canalización, el beneficio de rendimiento obviamente no será el doble. La mayoría de las pruebas sitúan el beneficio entre el 10% y el 50%, según el tipo de instrucciones que se ejecutan.

En respuesta a su pregunta, si inicia 4, 8 o 16 instancias de su programa, todas se "ejecutarán", pero las instrucciones para cada una se pondrán en cola dependiendo de cuántos HILOS disponibles estén disponibles. Una vez que supere la cantidad de NÚCLEOS FÍSICOS disponibles (por ejemplo, 5 o más), el rendimiento se reducirá porque cualquier subproceso más allá de la base 4 compartirá un núcleo físico de CPU.

Finalmente, una vez que alcance el límite de la capacidad de subprocesos de la CPU disponible (supere los 8 subprocesos), el sistema operativo comenzará a programar/poner en cola instrucciones para esperar hasta que terminen las que están en proceso. Lo ideal sería evitar repasar los subprocesos disponibles porque podría tener impactos negativos en el rendimiento y cuellos de botella en el sistema.

información relacionada