Núcleos e hilos
Por qué una CPU es en realidad varios procesadores, y cómo atiende todavía más tareas.
Un núcleo (core) es un procesador completo: puede buscar instrucciones y ejecutarlas por su cuenta. Durante décadas una CPU tenía uno. Desde mediados de los 2000, los fabricantes ponen varios núcleos en el mismo chip en vez de hacer un único núcleo cada vez más rápido, así que el procesador de una laptop puede tener 8 o más y el de un servidor varias decenas. Cada núcleo puede correr un programa distinto, o una parte distinta del mismo programa, al mismo tiempo.
Un hilo (thread) es una secuencia de instrucciones esperando ser ejecutada. El software crea hilos, el sistema operativo se los reparte a los núcleos, y salta entre ellos tan rápido que parece que decenas de apps corren a la vez. Muchas CPUs además ofrecen multihilo simultáneo (SMT; Intel lo llama Hyper-Threading): cada núcleo se presenta como dos, así puede avanzar con un segundo hilo mientras el primero espera datos. De ahí salen especificaciones como "8 núcleos, 16 hilos". Los dos hilos comparten la maquinaria de un mismo núcleo, así que es una mejora útil, no el doble de velocidad.
Más núcleos ayudan solo cuando el trabajo se puede dividir. Renderizar video, compilar código o atender los pedidos de muchos usuarios en un servidor se dividen bien, y van mucho más rápido con más núcleos. Una cadena larga de pasos, donde cada paso necesita el resultado del anterior, no se puede dividir, y corre a la velocidad de un núcleo. Por eso importan tanto la cantidad de núcleos como la velocidad de cada uno.
Para quedarse
- Un núcleo es un procesador independiente; las CPUs modernas tienen varios o muchos.
- Un hilo es una fila de instrucciones que el sistema operativo asigna a un núcleo.
- El multihilo simultáneo deja que un núcleo atienda dos hilos, compartiendo sus partes.
- Más núcleos aceleran el trabajo divisible, no las tareas en cadena.