¿Cuántos más núcleos tenga un procesador es mejor?

Un procesador multitarea, como son hoy todos, es un procesador que aparentemente puede hacer a la vez varias cosas.

Porque dedica alternativamente pequeñas fracciones de la CPU, (procesador central), a cada una de las tareas, ahora calculo, ahora lo presento en pantalla, ahora lo mando a la impresora, ahora lo guardo en el disco duro, etc, etc …

procesador multitarea

Si el procesador es rápido, estas pequeñas interrupciones pasan desapercibidas y parece que hace varias cosas a la vez, cuando en realidad, hace en cada momento solo una cosa y las otras están paradas.

Pero si el procesador tiene varios core o nucleos, es como si realmente tuvieras varios procesadores diferentes dentro del equipo y uno se dedicara a calcular, otro a refrescar la pantalla, otro a escribir, etc, etc .

Núcleos procesador

Realmente ganaras velocidad porque ahora si es multitarea real, en el mismo instante se dedica a resolver varios asuntos diferentes.

Por ejemplo, un nucleo se dedica a escribir con Word, otro en segundo plano atiende las peticiones de la impresora, mientras otro se está descargando el correo.

Evidentemente si tienes dos núcleos, podrás hacer varias tareas mas rápido que si tienes solo uno.

Sin embargo, esto en un particular, tiene un límite, que son las diferentes tareas que tiene en marcha, de nada vale que haya 12 cores, si tu solo pones en marcha cuatro tareas diferentes.

No obstante, hay lenguajes de programación capaces de descomponer los procesos iterativos en diferentes hilos y mandar cada uno a un core diferente.

Por ejemplo, estas calculando una factura de muchos productos que te han comprado cada uno en diferentes cantidades y que se les aplica IVAS diferentes.

Si tienes una programación adecuada, esa factura calculará cada linea en un nucleo diferente, para luego sumar los valores parciales y calcular el total de la factura.

Si tiene la posibilidad de calcular varios hilos a la vez, acabarás antes, cuantos mas hilos puedas tratar a la vez, mejor.

Muchos núcleos procesador no necesariamente mejor

Pero si tienes muchísimos núcleos, llegara un momento que no los puedas aprovechar todos, porque no tengas suficientes hilos para alimentar tanto núcleo, Igual te dará tener 36 que 2000 si tus facturas son de veinticuatro referencias.

Pero ademas pasa, que tengas los hilos que tengas, el total no se podra calcular, hasta que finalice de calcularse la linea de factura mas enrevesada.

Por tanto, aunque todos menos uno de los hilos, hayan acabado, aquel que es mas lento, hace esperar a todos los demás, hasta que el acabe, para hacer el siguiente paso que es totalizar la factura.

En este sencillo ejemplo, se ve que la velocidad real de un programa depende de los cores que tenga tu CPU, pero que a partir de un punto tanto da cuantos tengas, porque lo que realmente depende es de la velocidad de la secuencia de cálculos lineales mas compleja que tienes.

servidor en red

En un servidor en red que tenga muchos accesos por internet, ahí sí será útil tener cuanto mas cores mejor, pues cada core atenderá la consulta que le haga un usuario, pero en cambio, ese mismo procesador será excesivo para un particular y no sacará partido de el.

Si el número de consultas se disparan no habrá en el mercado computador con suficientes cores, entonces se recurre a hacer trabajar los procesadores en clúster, es decir cada procesador con los Cores que tenga, pasa a trabajar en paralelo, dentro de lo que se llama un clúster, (conjunto, grupo o cúmulo), con otros procesadores con sus cores.

El supercomputador Nare Nostrum tiene 48.896 procesadores Intel Xeon de 64 bits a 2,6 GHz con lo que teóricamente puede realizar 1.100 billones de operaciones por segundo.

Pero si fuera a calcular una factura en COBOL que no es capaz de distribuir juego entre los diferentes computadores, tardaría prácticamente lo mismo que si se hace en una computadora normal, porque solo podría dedicar a ello un solo procesador de todos los que tiene.

Para un particular conviene saber donde esta en su caso el cuello de botella.

Por ejemplo, yo he aumentado mucho el rendimiento de mi procesador al cambiar el disco duro tradicional por un disco duro sólido o SSD.

Mi cuello de botella, no era la velocidad de procesador, sino las lecturas al disco duro, y el SSD es mucho mas rápido que el disco duro tradicional.