La tecnología Hyper-threading en los procesadores Intel
Esta tecnología apareció originalmente en el año 2002, incorporandose así al Xeon y al Pentium 4 hasta el día de hoy, haciendo una pausa con los procesadores de la arquitectura Core y volviendo con los Core i. Básicamente, este sistema consiste en crear dos núcleos virtuales a partir de un núcleo real. Por poner un ejemplo, si nuestro sistema cuenta con Hyper-threading habilitado, al abrir el Administrador de Tareas (en la solapa "Rendimiento" ) veríamos el doble de núcleos de los que realmente contamos en el procesador.
Este sistema existe para asegurarnos que los núcleos del procesador estén siempre ejecutando instrucciones, es decir, para evitar que estén en reposo (idle) si es que hay instrucciones que deben ser ejecutadas. Un núcleo puede quedar idle si se dan ciertas condiciones desfavorables, como podría ser una dependencia de datos, un fallo en el predictor de saltos o una falta de datos/instrucciones en la caché.
Para que Hyper-threading funcione en forma óptima, todos los núcleos (virtuales) necesitan estar bajo carga. El problema principal se da con aplicaciones antiguas o poco optimizadas para dividir el procesamiento en diferentes hilos o threads, que son los componentes con los que el sistema operativo se comunica con los programas. Lo bueno de esta tecnología es que, con un sistema operativo moderno (Que diferencie entre núcleos virtuales y reales), una aplicación que no es "multi-threaded" no estaría obteniendo una performance significativamente negativa. En otras palabras, la presencia de Hyper-Threading afecta en forma positiva o neutral al sistema, salvo casos específicos.
Impacto de Hyper-threading en la performance
Un buen benchmark sobre Sandy Bridge y el impacto de Hyper-threading lo pueden encontrar en esta review:
Al ver los números, queda claro que Hyper-threading no se trata de un reemplazo para más núcelos, ya que los núcleos virtuales jamás podrían otorgar la misma performance que los núcleos reales, pero en general otorga una mayor performance con un mínimo costo adicional. Definitivamente, un costo mucho menor al de incorporar más núcleos al die del procesador.
En conclusión, en líneas generales, Hyper-threading ofrece un porcentaje bastante variable de incremento en la velocidad final de la computadora. En casi todas las circunstancias va a ser conveniente que esté en nuestro sistema.
Es un tema que puede resultar complicado de entender al 100%, pero no duden en dejarme sus preguntas en los comentarios!

