Qaud Core de subproceso único frente a Hyper-Threading Dual Core [duplicado]

10

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.

David
fuente
3
Voto negativo porque una breve búsqueda en Google (Wikipedia) habría dado la respuesta.
Werner Henze
44
@WernerHenze, mientras que lo que dices es cierto, nos gustaría que la gente vea los resultados de SuperUser cuando Google esas cosas :)
Shekhar

Respuestas:

10

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.

Journeyman Geek
fuente
1
El procesador HT vería 15-30% ... Teclean aquí. HT no es un reemplazo para un verdadero segundo núcleo (o 2, o 4, etc.)
Austin T French
1
Más CPU, con más núcleos, con hiperhilo sería aún mejor ...: D
Keltari
Es importante tener en cuenta que la razón principal para la mejora del rendimiento con HT es que la CPU rara vez está completamente cargada; es decir, un solo subproceso rara vez procesará datos con cada ciclo de CPU. HT permite que la CPU programe un segundo subproceso durante esos ciclos que de otro modo no se utilizarían. Para cambiar entre Facebook y correo electrónico, esto puede ser muy efectivo, pero cuanto más intensivo sea el CPU en cada hilo, menor será la mejora del rendimiento.
Thomas
1

De Wikipedia :

Hyper-threading funciona duplicando ciertas secciones del procesador, aquellas que almacenan el estado arquitectónico, pero no duplicando los principales recursos de ejecución. Esto permite que un procesador de hiperprocesamiento aparezca como el procesador "físico" habitual y un procesador "lógico" adicional para el sistema operativo host (los sistemas operativos que no conocen HTT ven dos procesadores "físicos"), lo que permite que el sistema operativo programe dos subprocesos o procesos simultáneos y apropiados. Cuando la tarea actual no utilizaría los recursos de ejecución en un procesador sin hiperprocesamiento, y especialmente cuando el procesador está estancado, un procesador equipado con hiperprocesamiento puede usar esos recursos de ejecución para ejecutar otra tarea programada. (El procesador puede detenerse debido a una falta de caché, predicción errónea de la rama,

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%.

Werner Henze
fuente
1

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.

Siva
fuente