He escuchado el término hiperprocesamiento recientemente, ¿qué es exactamente el hiperprocesamiento y por qué es importante?
cpu
architecture
hyper-threading
Gordon Gustafson
fuente
fuente
Respuestas:
Hyper-threading es donde su procesador pretende tener 2 núcleos de procesador físico, pero solo tiene 1 y algo de basura adicional.
El punto de hyperthreading es que muchas veces cuando está ejecutando código en el procesador, hay partes del procesador que están inactivas. Al incluir un conjunto adicional de registros de CPU, el procesador puede actuar como si tuviera dos núcleos y, por lo tanto, utilizar todas las partes del procesador en paralelo. Cuando los 2 núcleos necesitan usar un componente del procesador, un núcleo termina esperando, por supuesto. Es por eso que no puede reemplazar a los procesadores de doble núcleo y similares.
fuente
Hyper-Threading es donde dos subprocesos pueden ejecutarse en un núcleo de subproceso único. Cuando un subproceso en el núcleo en cuestión se detiene o se detiene, el hiperprocesamiento permite que el núcleo trabaje en un segundo subproceso.
Hyper-threading hace que el sistema operativo piense que el procesador tiene el doble de núcleos, y a menudo produce una mejora en el rendimiento, pero solo en la región del 15-30% en general, aunque en algunas circunstancias, puede haber un impacto en el rendimiento (= <20%).
Actualmente, la mayoría de los chips Atom y todos los i7 (y los chips equivalentes a Xeon) tienen hiperprocesamiento, al igual que algunos P4 más antiguos. En el caso de los átomos, es un intento desesperado de mejorar el rendimiento sin aumentar mucho el consumo de energía; en el caso de i7s, los diferencia de la gama de chips i5.
El trabajo de procesamiento complejo no se beneficiará mucho de HT, pero ciertas tareas (simples, altamente multiproceso), como la codificación de video, se benefician de HT. En realidad, no hay mucho en eso ...
fuente
es Hyperthreading
En detalle
La implementación de Intel de subprocesos múltiples simultáneos se conoce como tecnología Hyper-Threading o tecnología HT.
La tecnología HT hace que un único procesador aparezca, desde la
perspectiva del software , como múltiples procesadores lógicos. Esto permite que los sistemas operativos y las aplicaciones programen múltiples subprocesos a procesadores lógicos como
lo harían en sistemas multiprocesador.
Hyperthreading permite que un solo procesador ejecute dos subprocesos simultáneamente, pero no en todas las condiciones.
Hyperthreading no duplica el rendimiento de un sistema, puede aumentar el rendimiento al utilizar mejor los recursos inactivos que conducen a un mayor rendimiento para ciertos tipos de carga de trabajo importantes. Una aplicación que se ejecuta en un procesador lógico de un núcleo ocupado puede esperar un poco más de la mitad del rendimiento que obtiene mientras se ejecuta solo en un procesador no hiperprocesado. Las mejoras de rendimiento de Hyperthreading dependen en gran medida de las aplicaciones, y algunas aplicaciones pueden ver una degradación del rendimiento con hyperthreading porque muchos recursos del procesador (como la memoria caché) se comparten entre procesadores lógicos.
La tecnología Intel Hyper-Threading hace que cada núcleo pueda tener dos procesadores lógicos que comparten la mayoría de los recursos del núcleo, como cachés de memoria y unidades funcionales
Función principal
de Hyperthreading es aumentar el número de instrucciones independientes en la tubería; aprovecha la arquitectura superescalar, en la que varias instrucciones operan en datos separados en paralelo
Intel dice que el hiperprocesamiento es altamente eficiente porque utiliza recursos que de otro modo estarían inactivos o subutilizados.
Campo de golf:
Wikipedia
StackOverflow
Multi-Core Programming Digital_Edition pg # 8
fuente
Para ampliar lo que ya se ha dicho, hyperthreading significa que un solo núcleo de CPU puede mantener dos contextos de ejecución separados y cambiar rápidamente entre ellos, emulando efectivamente dos núcleos a nivel de hardware.
Obtiene un beneficio de velocidad modesta para cargas de trabajo de subprocesos múltiples en comparación con un núcleo normal de un solo núcleo. Sin embargo, no está cerca del beneficio de tener dos núcleos independientes. En términos de rendimiento, es mejor considerarlo como un pequeño impulso en el rendimiento de subprocesos múltiples en un solo núcleo en lugar de tener un rendimiento cercano a dos núcleos. El tamaño del aumento de velocidad varía según la carga de trabajo; de hecho, para algunas cargas de trabajo, el aumento de rendimiento es bastante decente.
El núcleo hiperprocesado solo tiene una unidad de ejecución principal, pero otras partes de una CPU asociadas con las instrucciones de preparación para procesar y mantener un estado de ejecución se duplican.
Los núcleos de procesador tienen una canalización de instrucciones: una cola de instrucciones futuras que se ejecutarán, que se actualiza constantemente, lista para que la CPU ejecute las instrucciones en la cabecera de esa cola. Las CPU los utilizan para optimizar la velocidad de ejecución al observar estas instrucciones futuras y realizar un preprocesamiento simple de bajo nivel cuando sea posible (tales optimizaciones incluyen "ejecución fuera de orden" y "predicción de bifurcación").
Los núcleos hiperprocesados tienen dos canales de instrucción, y esto, junto con un segundo conjunto de registros, es donde obtienes el beneficio de velocidad para cargas de trabajo multiproceso. El cambio entre contextos de subprocesos no elimina la canalización o los registros, y la canalización y los registros para el otro subproceso permanecen listos y "activos" para que puedan cambiarse y utilizarse de inmediato.
fuente