Digamos que tenemos dos CPU, una es Quad Core 3.2 Ghz con 4 núcleos, y tenemos un Dual Core 3.2 Ghz con 2 núcleos con 2 hilos en cada núcleo (Hyper-Threading). Mi suposición como programador será que los 4 núcleos 4 hilos deberían funcionar más rápido que los 2 núcleos 4 hilos ya que la segunda CPU necesita cambiar entre hilos para emular 4 núcleos mientras que el primero no necesita realizar tal cambio como cada uno core puede realizar de forma independiente e individual.
Quiero confirmar que mi suposición es cierta, si no, explique por qué una es mejor que la otra.
Respuestas:
Creo que es cierto, ya que el hiperprocesamiento comparte algunos elementos, específicamente los recursos de ejecución principales, podrá ejecutar 4 subprocesos completos a la vez, en lugar de esperar a que esos recursos se liberen.
El objetivo de HT es obtener un mejor rendimiento con un uso más pequeño del área de troquel: su núcleo cuádruple generalmente sería un chip más grande, digamos casi el doble de grande, que un chip de doble núcleo no HT, mientras que un chip de doble núcleo HT sería aproximadamente 5% más grande. El núcleo cuádruple podría ver hasta dos veces la velocidad bajo la carga de trabajo correcta (aunque es poco probable ya que probablemente no ejecutará 4 subprocesos a plena capacidad en la mayoría de los casos), mientras que el procesador HT de doble núcleo vería un 15-30% mejor rendimiento ( según wikipedia ) que un procesador de doble núcleo no HT.
Más núcleos reales suele ser mejor.
fuente
De Wikipedia :
Si tiene un sistema de cuatro núcleos, se pueden ejecutar 4 subprocesos en un núcleo completo. Si tiene un sistema hyperthreading de doble núcleo, entonces 2 hilos podrían ejecutarse en un núcleo completo, pero con 4 hilos los hilos 1 y 2 compartirán un núcleo y los hilos 3 y 4 compartirán el otro núcleo. Hyperthreading permite que dos subprocesos se ejecuten en paralelo (solo) si no usan los mismos recursos de procesador. Entonces, en un caso ideal, es posible que obtenga un alto grado de paralelización, pero como dice Wikipedia, la ganancia de rendimiento no es del 100%, sino solo del 15-30%.
fuente
En hiperprocesamiento, el tiempo de inactividad del núcleo para la tarea A (dicho núcleo podría haber enviado una solicitud de datos al disco, esperar a que el disco busque el área de los platos, leer los datos y enviarlo de vuelta al núcleo ) se explota para realizar otra tareaB. Entonces, cuando la tarea B está siendo atendida por el llamado hilo 2, y si la solicitud de búsqueda de datos por la tarea A se completa, la tarea A todavía tiene que esperar a que el núcleo termine el hilo 2. Ambos hilos no pueden ejecutarse simultáneamente en un núcleo. Una vez más, HT explota el desajuste de velocidad entre el núcleo / procesador y los diversos subsistemas en su computadora. HT utiliza sus núcleos a plena capacidad ... es como la utilización de la capacidad total. Entonces, si abre cuatro pestañas en su navegador, cada pestaña tendrá un núcleo en un sistema de 4 núcleos y dos pestañas tendrán que compartir un núcleo en un sistema de 2 núcleos.
fuente