top of page
Buscar
Foto del escritorLaure

Núcleos e hilos en un procesador: qué son y en qué se diferencian


La diferencia entre hilo y núcleo, referido a los procesadores, es como una línea muy delgada. Te mostramos lo que es un hilo y lo que es un núcleo.


Repasamos la diferencia entre los hilos y núcleos de un procesador.


A menudo hay mucha confusión en torno a los núcleos y los hilos. Muchas personas no saben cuál es la diferencia y otro tanto no sabe lo que es exactamente cada cosa. Para entender realmente cómo funciona un procesador, es menester saber diferenciar los dos términos.

A nivel de usuario no es tan importante (más allá de saciar la curiosidad y de tener la capacidad para elegir qué comprar), pero a nivel de desarrollo es vital si queremos desarrollar una aplicación que realmente funciona bien a nivel de consumo de recursos.



Núcleos


Una de las cosas más sonadas en cuanto a CPU’s son los núcleos (‘cores’ en inglés). Los cores son, como veremos más adelante, como un subprocesador en sí mismo. Antes, los procesadores eran de un solo núcleo (single core), por lo que no podían realizar más que una tarea al mismo tiempo.

Como un núcleo es un procesador en sí mismo, una CPU multinúcleo de dos núcleos pueda ejecutar dos tareas al mismo tiempo.




Una CPU con dos núcleos sí que podría realizar dos tareas al mismo tiempo, pero no más. Uno de cuatro, pues cuatro, y así de forma correlativa con tantos núcleos como incorpore. Tener dos núcleos equivaldría a tener dos manos.



Más núcleos no tiene por qué significar mayor rendimiento, pero ¿por qué?


El diseño de una CPU es realmente complejo, y sería conveniente ahondar en muchos otros detalles sobre sus características técnicas. No obstante, a nivel de usuario y para tener un concepto amplio sobre el rendimiento de un procesador, podemos limitarnos a dos datos clave: núcleos y frecuencia de reloj.


Como decíamos, un procesador, o una CPU, se compone de varios núcleos. A más núcleos, más unidades de procesamiento independientes y, por tanto, mayor cantidad de instrucciones se podrán procesar de forma simultánea. La paralelización en el procesamiento de instrucciones permite un mayor rendimiento, pero la frecuencia de reloj es lo que define la velocidad con que se llevan a cabo estos ciclos de instrucciones. Esta velocidad se mide en GHz; cuanto mayor sea, más rápido será capaz cada uno de estos núcleos en completar esas cuatro partes que componen un ciclo de instrucción completo.


Y esto es precisamente lo que explica que un procesador dualcore pueda ser más rápido que un procesador quadcore. Además de por otros factores como la arquitectura (evidentemente), la memoria caché de la CPU, el proceso de fabricación y etc.




Hilos


Los hilos (‘thread‘ en inglés) son otra cosa totalmente distinta a los núcleos, aunque a menudo se confunden. Se puede definir como el flujo de control de programa. Ayudan de forma directa a la manera en la que un procesador administra sus tareas. La función de los hilos se podría decir que hace que los ‘tiempos de espera’ entre procesos se aprovechen mejor.


Aunque un núcleo solamente pueda realizar una tarea al mismo tiempo, se pueden usar los hilos para hacer creer al usuario (y al propio ordenador) que sí se puede hacer más de una cosa al mismo tiempo.


¿Y como es eso? Es muy simple: en vez de realizar una tarea por completo, divides la tarea en porciones (cada hilo se encarga de un aspecto concreto del programa), de modo que vas alternando entre porciones de tareas para que parezca que ambas se ejecutan al mismo tiempo.




Es decir, hacemos un poco de un proceso y otro poco de otro proceso; cada uno de esos trozos se corresponde con el hilo. Así, no tenemos que esperar a que una tarea acabe para comenzar otra. El número de hilos corresponde de manera directa con el número de tareas que se pueden llevar a cabo de forma pseudoparalela (es decir, de forma ‘simultánea’).


Pongamos ahora, por ejemplo, que un programa tiene una tarea multihilo (dos, concretamente). Si nuestro procesador tiene dos hilos, podrá ejecutar estas tareas de forma simultánea. Además, accederán a los recursos del sistema de manera compartida, por lo que las tareas se realizan con un consumo de recursos inferior.



Generalmente por cada núcleo hay dos hilos (salvo excepciones)



En el gráfico superior podemos ver lo que sería una definicion gráfica del uso de un procesador de 4 núcleos sin multi-hilo (imagen de arriba) y con multi-hilo (imagen de abajo). Las pelotas se corresponden con el número de tareas que puede procesador de forma pseudoparalela un mismo núcleo.



El doble de hilos no equivale al doble de núcleos


Esto de los hilos se le llama multi-threaded (también conocido como Hyperthread o HT en los procesadores de Intel), una tecnología que hace creer al ordenador por medio de software que tiene el doble de núcleos de los que realmente hay. Es lo que se llama procesador lógico, y por supuesto aun con el doble de procesadores, no se tiene el doble de rendimiento, ni siquiera tanto rendimiento como tendríamos con 4 núcleos físicos.


No obstante, esto no viene en todos los procesadores. Un portátil, por ejemplo, tiene 4 núcleos y 4 hilos, por lo que no se produce el multi-hilo. Aún teniéndolo, no sería compatible con todos los programas, pues el desarrollador tiene que haber diseñado la aplicación a conciencia. Y es ese precisamente una de las grandes ventajas del multi-hilo: el desarrollador tiene que haber hecho bien su trabajo.


Por otro lado, en caso de que tengamos multi-hilo, podemos activarlo o desactivarlo desde la BIOS, aunque viene por defecto activado (podría ser interesante porque hay programas muy antiguos que no lo soportan).




0 comentarios

Entradas recientes

Ver todo

Comments


bottom of page