Por qué es importante no confundir hilos con núcleos en un procesador

Muchos usuarios tienen tendencia a confundir el número de hilos que ven en el administrador de tareas de Windows, con el número de núcleos que tiene su procesador. Y, aunque en muchos casos, ambos números es idéntico, la llegada de los procesadores con Hyper-threading (HT) o con Simultaneous Multi Threading (SMT) ha empeorado la confusión a este respecto.
Un procesador está formado por una serie de unidades aritméticas, que se encargan de procesar la información que reciben del «exterior», para lograr generar una instrucción que poder mandar a los diferentes componentes del ordenador. Este procesado se hace en el interior del procesador, en su núcleo. Pero, por otro lado, para que se procese esa información, se ha de generar un hilo de instrucciones que se ejecuten sobre la información. De esta manera, el procesador puede entender lo que se quiere intentar conseguir, y consiga transformarla en un resultado. Este resultado puede ser tanto pedir que se lea una dirección de memoria de la RAM, como mandar información necesaria a la tarjeta gráfica. Es a este hilo de instrucciones a lo que denominamos hilo de proceso.
Todos los núcleos han de tener un hilo asociado, como mínimo
Cuando los procesadores tenían un solo núcleo y un solo hilo, no había ninguna posible equivocación. Si queríamos tener más núcleos y más hilos, el usuario debía de recurrir al empleo de placas base con múltiples sockets para múltiples procesadores.
Las primeas confusiones comienzan con el advenimiento de la tecnología del Hyper-threading de Intel. Esta tecnología permite que cada núcleo sea capaz de manejar, de manera simultánea, dos hilos de instrucciones para mejorar el rendimiento general del sistema. No es que tengamos un hilo real y otro virtual: tenemos dos hilos de instrucciones reales, solamente que uno es más eficiente a la hora de manejar las instrucciones que el otro.
Sin embargo, para el sistema operativo, ambos hilos aparecen representados como si fueran dos núcleos. Esta es una manera gráfica más sencilla de representar la carga de trabajo que tiene cada hilo del procesador, y es que lo que se está mostrando son los núcleos lógicos (que son los que manejan los hilos) y no los físicos.
Cuando empezaron a aparecer los primeros procesadores multinúcleo, las confusiones desaparecieron. En este caso, si nuestro procesador tenía dos núcleos, en el Administrador de Tareas, aparecían dos procesadores lógicos, con sus correspondientes hilos. Sin embargo, cuando comenzaron a aparecer procesadores multinúcleo que también implementaban la tecnología de HT o SMT, ya fueran de Intel o AMD respectivamente, la confusión se agravó, dado que ahora podíamos tener un procesador de cuatro núcleos físicos que tenía ocho hilos de procesado de instrucciones.
Tanto la tecnología de HT como el SMT permiten trabajar en dos hilos a la vez
Todas las tecnologías multihilo permiten que cada núcleo del procesador trabaje con más de un solo hilo de manera simultánea. Esto significa que pueden hacer que la cola de trabajo del procesador se alivie bastante y sea mucho más eficiente, llenando sus tiempos muertos, de manera que las instrucciones puedan salir antes del procesador de una manera que sea utilizable por el sistema operativo. Pero no hay que confundir esto con la división de instrucciones que realiza el propio sistema operativo cuando detecta que el procesador tiene varios núcleos físicos.