Agregar varios núcleos a un solo procesador ofrece beneficios significativos gracias a la naturaleza multitarea de los sistemas operativos modernos. Sin embargo, para algunos fines, existe un límite superior práctico para la cantidad de núcleos que producen mejoras en relación con el costo de agregarlos.
Avances tecnológicos multinúcleo
Los procesadores de múltiples núcleos han estado disponibles en las computadoras personales desde principios de la década de 2000. Los diseños multinúcleo abordaron el problema de los procesadores que alcanzaban el techo de sus limitaciones físicas en términos de velocidades de reloj y la eficacia con la que podían enfriarse y aún así mantener la precisión. Al cambiar a núcleos adicionales en un solo chip de procesador, los fabricantes evitaron problemas con las velocidades del reloj al multiplicar efectivamente la cantidad de datos que podía manejar la CPU.
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áneas, como Hyper-Threading de Intel, pueden duplicar los núcleos virtuales que ve el sistema operativo.
Procesos e hilos
Un proceso es una tarea específica, como un programa, que se ejecuta en una computadora. Un proceso consta de uno o más subprocesos.
Un subproceso es simplemente un único flujo 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 único subproceso a la vez, por lo que el sistema cambia rápidamente entre los subprocesos para procesar los datos de una manera aparentemente simultánea.
La ventaja de tener múltiples núcleos es que el sistema puede manejar más de un subproceso simultáneamente. Cada núcleo puede manejar un flujo de datos separado. Esta arquitectura aumenta considerablemente 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 el cliente empresarial, pero a medida que las computadoras personales se volvieron más complejas y aumentaron las tareas múltiples, también se beneficiaron de tener núcleos adicionales.
Cada proceso, sin embargo, se rige por un subproceso principal que solo puede ocupar un único núcleo. Por lo tanto, la velocidad relativa de un programa como un juego o un procesador de video está estrictamente limitada a la capacidad del núcleo que consume el subproceso principal. El subproceso principal puede delegar absolutamente subprocesos secundarios a otros núcleos, pero un juego no se vuelve el doble de rápido cuando se duplican los núcleos. Por lo tanto, no es inusual que un juego maximice completamente un núcleo (el subproceso principal) pero vea solo una utilización parcial de otros núcleos para subprocesos secundarios. Ninguna cantidad de duplicación de núcleo evita el hecho de que el núcleo principal 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 advertencia importante. Para disfrutar de los verdaderos beneficios de los múltiples procesadores, el software que se ejecuta en la computadora debe estar escrito para admitir subprocesos múltiples. Sin el software compatible con esta 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 dos núcleos con velocidades de reloj base más altas.
Todos los principales sistemas operativos actuales admiten la capacidad de subprocesos múltiples. Pero el subprocesamiento múltiple también debe estar escrito en el software de la aplicación. La compatibilidad con subprocesos múltiples en el software de consumo ha mejorado a lo largo de los años, pero para muchos programas simples, la compatibilidad con subprocesos múltiples aún no está implementada debido a la complejidad de la compilación del software. Por ejemplo, no es probable que un programa de correo o un navegador web obtenga grandes beneficios de los subprocesos múltiples como lo haría un programa de edición de video o gráficos, donde la computadora procesa cálculos complejos.
Un buen ejemplo para explicar esta tendencia es observar un juego de computadora típico. La mayoría de los juegos requieren algún tipo de motor de renderizado para mostrar lo que sucede 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 eficiente. Si el sistema tuviera 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 los dos núcleos presenta beneficios mixtos, dado que la respuesta para cualquier comprador de computadora depende del software que usa normalmente. Por ejemplo, muchos juegos clásicos aún 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 una velocidad de reloj base más alta, dado que la eficacia del subproceso principal gobierna la eficiencia del rendimiento multiproceso.
Por otro lado, es probable que un programa de codificación de video que transcodifique video obtenga enormes beneficios, ya que la representación de cuadros individuales se puede pasar a diferentes núcleos y luego el software recopilarlos en una sola transmisión. Por lo tanto, tener ocho núcleos será aún más beneficioso que tener cuatro. En esencia, el subproceso principal no necesita recursos comparativamente ricos; en cambio, puede encargar el trabajo duro a subprocesos secundarios que maximizan los núcleos del procesador.
Velocidades del reloj
En términos generales, una mayor velocidad de reloj significará un procesador más rápido. Las velocidades de reloj se vuelven más nebulosas cuando considera las velocidades relativas a múltiples núcleos porque los procesadores procesan múltiples subprocesos de datos gracias a los núcleos adicionales, pero cada uno de esos núcleos se ejecutará 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 solo puede funcionar 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 el de cuatro núcleos. Por lo tanto, si tiene un programa que solo tiene un 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 será aproximadamente un 70 por ciento más rápido que el procesador de dos núcleos.
Conclusiones
En su mayor parte, tener un procesador con mayor cantidad de núcleos generalmente es mejor si su software y los casos de uso típicos lo admiten. En su mayor parte, un procesador de dos o cuatro núcleos será más que suficiente potencia 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 con un alto número de núcleos se relaciona con las máquinas que realizan tareas complejas, como la edición de videos de escritorio, algunas formas de juegos de alta gama o complicados programas de ciencia y matemáticas.
Consulta nuestras opiniones sobre ¿Qué tan rápido necesito una PC? para tener una mejor idea de qué tipo de procesador se adapta mejor a sus necesidades informáticas.