Procesadores de múltiples núcleos: ¿Más siempre es mejor?
Agregar varios núcleos a un solo procesador ofrece importantes beneficios gracias a la naturaleza multitarea de los sistemas operativos modernos. Sin embargo, para algunos propósitos, existe un límite práctico superior a la cantidad de núcleos que producen mejoras en relación con el costo de agregarlos.
Avances tecnológicos de múltiples núcleos

Los procesadores de varios núcleos han estado disponibles en Computadoras personales desde principios de la década de 2000. Los diseños de varios núcleos abordaron el problema de los procesadores que golpeaban el techo de sus limitaciones en términos de sus velocidades de reloj y la eficacia con que se pueden enfriar y aún mantener precisión. Al pasar a núcleos adicionales en un solo chip de procesador, los fabricantes evitaron problemas con las velocidades de reloj al multiplicar efectivamente la cantidad de datos que podría manejar el UPC.
Cuando se lanzaron originalmente, los fabricantes ofrecían solo dos núcleos en una sola CPU, pero ahora hay opciones para cuatro, seis e incluso 10 o más. Además de agregar núcleos, las tecnologías de subprocesos múltiples simultáneos, como Hyper-Threading de Intel, pueden duplicar los núcleos virtuales que el
Procesos e hilos
A proceso es una tarea específica, como un programa, que se ejecuta en una computadora. Un proceso consta de uno o más subprocesos.
A hilo es simplemente un flujo único de datos de un programa que pasa por el procesador de la computadora. Cada aplicación genera sus propios subprocesos uno o varios dependiendo de cómo se esté ejecutando. Sin multitarea, un procesador de un solo núcleo solo puede manejar un solo hilo a la vez, por lo que el sistema cambia rápidamente entre los hilos para procesar los datos de una manera aparentemente concurrente.
El beneficio de tener varios núcleos es que el sistema puede manejar más de un subproceso simultáneamente. Cada núcleo puede manejar un flujo de datos independiente. Esta arquitectura aumenta enormemente el rendimiento de un sistema que ejecuta aplicaciones simultáneas. Dado que los servidores tienden a ejecutar muchas aplicaciones simultáneas en un momento dado, la tecnología se desarrolló originalmente para cliente empresarial, pero a medida que las computadoras personales se volvieron más complejas y aumentó la multitarea, también se beneficiaron de tener núcleos extra.
Sin embargo, cada proceso se rige por un hilo principal que solo puede ocupar un núcleo. Por lo tanto, la velocidad relativa de un programa como un juego o un renderizador de video está estrictamente limitada a la capacidad del núcleo que consume el hilo principal. El hilo principal puede delegar absolutamente los hilos secundarios a otros núcleos, pero un juego no se vuelve el doble de rápido cuando duplicas los núcleos. Por lo tanto, no es inusual que un juego maximice por completo un núcleo (el hilo principal) pero vea solo la utilización parcial de otros núcleos para los hilos secundarios. Ninguna cantidad de duplicación de núcleos evita el hecho de que el núcleo primario es un limitador de velocidad para su aplicación, y las aplicaciones que son sensibles a esta arquitectura funcionarán mejor que las aplicaciones que no lo son.
Dependencia del software
Si bien el concepto de procesadores de múltiples núcleos suena atractivo, esta tecnología tiene una gran salvedad. Para disfrutar de los verdaderos beneficios de los múltiples procesadores, el software que se ejecuta en la computadora debe estar escrito para admitir múltiples subprocesos. Sin el software que admita dicha función, los subprocesos se ejecutarán principalmente a través de un solo núcleo, lo que degradará la eficiencia general de la computadora. Después de todo, si solo puede ejecutarse en un solo núcleo en un procesador de cuatro núcleos, en realidad puede ser más rápido ejecutarlo en un procesador de doble núcleo con velocidades de reloj base más altas.
Todos los principales sistemas operativos actuales admiten la capacidad de subprocesos múltiples. Pero el multiproceso también debe escribirse en el software de la aplicación. El soporte para subprocesos múltiples en software de consumo ha mejorado a lo largo de los años, pero para muchos programas, el soporte de subprocesos múltiples aún no se implementa debido a la complejidad del software construir. Por ejemplo, es poco probable que un programa de correo o un navegador web obtenga grandes beneficios del subproceso múltiple tanto como lo haría un programa de edición de gráficos o video, donde la computadora procesa cálculos complejos.
Un buen ejemplo para explicar esta tendencia es mirar un juego de computadora típico. La mayoría de los juegos requieren algún tipo de motor de renderizado para mostrar lo que está sucediendo en el juego. Además, algún tipo de inteligencia artificial controla los eventos y personajes del juego. Con un solo núcleo, ambas tareas se ejecutan cambiando entre ellas. Este enfoque no es eficaz. Si el sistema presentara múltiples procesadores, el renderizado y la IA podrían ejecutarse cada uno en un núcleo separado, una situación ideal para un procesador de múltiples núcleos.
¿Es 8> 4> 2?
Ir más allá de dos núcleos presenta beneficios mixtos, dado que la respuesta para cualquier comprador de computadora determinado depende del software que utiliza habitualmente. Por ejemplo, muchos juegos clásicos todavía ofrecen poca diferencia de rendimiento entre dos y cuatro núcleos. Incluso los juegos modernos, algunos de los cuales supuestamente requieren o admiten ocho núcleos, pueden no funcionar mejor que una máquina de seis núcleos con un mayor velocidad de reloj base, dado que la efectividad del hilo primario gobierna la eficiencia del multiproceso rendimiento.
Por otro lado, un programa de codificación de video que transcodifica video probablemente obtendrá grandes beneficios como La representación de cuadros individuales se puede pasar a diferentes núcleos y luego recopilarse en una sola secuencia por el software. Por lo tanto, tener ocho núcleos será incluso más beneficioso que tener cuatro. En esencia, el hilo principal no necesita recursos comparativamente ricos; en cambio, puede dedicar el trabajo duro a subprocesos secundarios que maximizan los núcleos del procesador.
Velocidades de reloj

En términos generales, una mayor velocidad de reloj significará un procesador más rápido. Las velocidades del reloj se vuelven más nebulosas cuando se consideran velocidades relativas a múltiples núcleos porque los procesadores procesan múltiples datos hilos gracias a los núcleos adicionales, pero cada uno de esos núcleos funcionará a velocidades más bajas debido a las restricciones térmicas.
Por ejemplo, un procesador de doble núcleo puede admitir velocidades de reloj base de 3,5 GHz para cada procesador, mientras que un procesador de cuatro núcleos puede solo funciona a 3,0 GHz. Con solo mirar un solo núcleo en cada uno de ellos, el procesador de doble núcleo es un 14 por ciento más rápido que en el cuatro nucleos. Por lo tanto, si tiene un programa que solo es de un solo subproceso, el procesador de doble núcleo es en realidad más eficiente. Por otra parte, si su software puede usar los cuatro procesadores, entonces el procesador de cuatro núcleos en realidad será aproximadamente un 70 por ciento más rápido que ese procesador de doble núcleo.
Conclusiones
En su mayor parte, tener un procesador de mayor número de núcleos es generalmente mejor si su software y los casos de uso típicos lo respaldan. En su mayor parte, un procesador de doble núcleo o de cuatro núcleos será más que suficiente para un usuario de computadora básico. La mayoría de los consumidores no verán beneficios tangibles al ir más allá de los cuatro núcleos de procesador porque muy poco software no especializado lo aprovecha. El mejor caso de uso para los procesadores de alto número de núcleos se relaciona con las máquinas que realizan tareas complejas como la edición de video de escritorio, algunas formas de juegos de alta gama o programas complicados de ciencias y matemáticas.
Echa un vistazo a nuestras opiniones sobre ¿Qué tan rápido de una PC necesito? para tener una mejor idea de qué tipo de procesador se adapta mejor a sus necesidades informáticas.