¿Un mayor número de núcleos o una mayor velocidad de reloj son más beneficiosos para el rendimiento de una computadora?

¿Un mayor número de núcleos o una mayor velocidad de reloj son más beneficiosos para el rendimiento de una computadora?

Con la reducción de los costos del silicio y el aumento de las necesidades de los consumidores, los fabricantes parecen estar impulsando una de dos cosas: la velocidad del reloj y/o el número de núcleos. Tal como van las cosas, no parece que la velocidad de reloj de los procesadores esté aumentando, sino el número de núcleos de procesador.

Recuerdo que hace sólo unos años tenía un procesador Pentium 4 de un solo núcleo, rápido y agradable. Si avanzamos hasta el día de hoy, no creo que se pueda comprar siquiera un procesador de un solo núcleo (sin mencionar el creciente aumento de procesadores multinúcleo).incluso en los teléfonos móviles). Tal como van las cosas, es posible que encontremos computadoras con cientos de núcleos en unos pocos años (y sé que muchos sistemas operativos ya lo admiten).

¿Es más beneficioso para el rendimiento general de un sistema aumentar la velocidad del reloj o aumentar la cantidad de núcleos? Supongamos que estamos ingresando a cientos de núcleos funcionando todos juntos, o velocidades de reloj diez veces más altas que las que tenemos hoy (independientemente de si eso es físicamente posible o no).

¿Cuáles son algunos ejemplos de procesos comunes (por ejemplo, cifrado, compresión de archivos, edición de imágenes/vídeo) que se beneficiarán más de uno u otro? ¿Existen algunos procesos quepoderser, pero actualmente (por razones técnicas) no se aceleran aumentando su paralelismo?


Supongamos que el procesador hipotético tiene exactamente el mismo diseño de núcleo (tamaño de palabra, ancho de bits de dirección, tamaño del bus de memoria, caché, etc.), por lo que las únicas variables aquí son la velocidad del reloj y el número de núcleos. Y nuevamente, no me refiero a uno, dos o incluso cuatro núcleos; imaginemos de decenas a cientos.

Respuesta1

Hay dos situaciones básicas que deben considerarse:

  1. El procesador se utiliza con una computadora que únicamente realiza cálculos para un solo programa.

  2. El procesador se utiliza para múltiples programas ejecutándose al mismo tiempo.

La primera situación es donde la "velocidad" del procesador es más importante, ya que el usuario desea poder realizar cálculos de forma rápida y eficiente. Estas situaciones suelen ser para procesamiento intensivo de cálculo, es decir, cálculo de números primos paracifrado/descifrado

El segundo es donde los núcleos múltiples resultan útiles, ya que cada programa se puede asignar a un núcleo separado, liberando así a cada programa de "cuellos de botella" entre sí. En el mundo actual, el usuario promedio utilizará su computadora para múltiples programas a la vez, lo que hace que el procesamiento multinúcleo sea algo deseable.

Sin embargo, multinúcleo!=velocidades más rápidas o mayor rendimiento en todos los casos. Dado que la mayoría de los programas están escritos para procesamiento de un solo núcleo * , aún es importante observar la velocidad del reloj. Se debe tener en cuenta una combinación de ambos.(junto con muchos otros factores también).


* Hay algunos programas, y esperemos que pronto se creen más, en los que se pueden utilizar varios núcleos al mismo tiempo. El futuro del software se encuentra con esto”Programación paralela":

Los desarrolladores de software ya no pueden depender únicamente del aumento de la velocidad del reloj para acelerar las aplicaciones de un solo subproceso; en cambio, para obtener una ventaja competitiva, los desarrolladores deben aprender a diseñar adecuadamente sus aplicaciones para que se ejecuten en un entorno de subprocesos. Las arquitecturas multinúcleo tienen un paquete de procesador único que contiene dos o más "núcleos de ejecución" de procesador, o motores computacionales, y ofrecen, con el software apropiado, una ejecución totalmente paralela de múltiples subprocesos de software.

-Intel

Respuesta2

Personalmente creo que el recuento de núcleos es el camino a seguir. El desarrollo de software se ha desplazado hacia sistemas en red, por lo que los recursos locales ya no son los únicos recursos disponibles. El factor más importante en tu forma de trabajar ahora es quérederes parte de.

Observe el cambio hacia la banda ancha móvil, la conectividad constante, el acceso remoto, etc. Con eso, la conectividad constante requiere duración de la batería. Si bien es discutible qué factores de CPU son más óptimos para la duración de la batería (tienes la ecuación de optimización clásica de valor de trabajo versus tiempo), personalmente creo que, si tuvieras que elegir uno, elegiría más núcleos.

Intel ahora le permite alimentar núcleos bajo demanda. Si bien no es tan óptimo como no tener núcleos en suspensión, tener la opción de usar más núcleos le brinda la flexibilidad de ejecutar más aplicaciones desde la misma plataforma de hardware.

Respuesta3

Como ChrisF menciona en un comentario,Eso depende.Pero como respuestas como esa no son realmente respuestas, intentaré distinguir algunos escenarios en los que una será más beneficiosa que la otra:

En la mayoría de los procesos comunes que menciona, la cantidad de núcleos no importará mucho, ya que la mayor parte del trabajo se realiza en un solo subproceso que solo se puede ejecutar en un único núcleo (a la vez). Para tales procesos, un núcleo único pero muy potente funcionará mejor que un par de núcleos más lentos. Tanto el cifrado como la compresión de archivos podrían ser excepciones a esto, pero depende mucho de qué algoritmos se utilicen y si se pueden ejecutar en paralelo.

Sin embargo, te has olvidado de una de las tareas más habituales que se realizan en los ordenadores hoy en día: navegar. Varios navegadores populares abren cada pestaña en un proceso separado (Estoy seguro de que Chrome es el único que hace esto, ya que es el que yo uso), lo que significa que si tienes cuatro pestañas abiertas en un sistema de cuatro núcleos, cada ventana de navegación puede (en teoría) tiene un núcleo "para sí mismo" (ignorando los subprocesos del sistema operativo y demás) y es tan rápido como si no hubiera otras pestañas/ventanas del navegador abiertas. Para las personas que navegan con muchas pestañas abiertas a la vez, esto puede suponer una importante mejora del rendimiento sin tener que construir núcleos de CPU extremadamente rápidos.

La clave para saber si un sistema multinúcleo con núcleos más lentos será más rápido que un sistema de un solo núcleo con un núcleo rápido es saber si lo hará.muchas cosas diferentes simultáneamenteoalgunas cosas, pero pesadas. Como esto diferirá mucho de un usuario a otro, también lo hará la respuesta a su pregunta.


Las otras respuestas también plantean un par de puntos importantes:

  • El rendimiento del procesador ya no se trata solo de la velocidad del reloj o la cantidad de núcleos: otras partes del procesador se están convirtiendo en cuellos de botella a medida que la velocidad del reloj y el número de núcleos mejoran.
  • Para la mayoría de los usuarios, el rendimiento del procesador ni siquiera es el cuello de botella. Si pasa su tiempo en aplicaciones alojadas como Google Docs, la velocidad de su tarjeta de red importará más que la velocidad de los núcleos de su procesador. Si está viendo o editando material de película de alta resolución, el rendimiento del disco duro será más importante. Etc...

Respuesta4

En realidad, hoy en día el factor más importante no es la velocidad del reloj del procesador, se han lanzado muchas funciones nuevas desde que este "factor de comparación" cayó en desuso.

Hoy en día hay que fijarse en muchos factores para inferir sobre el rendimiento de los procesadores. Cosas como:

  • numero de nucleos
  • número de subprocesos de operación en paralelo
  • familia de procesadores (Dual core, Pentium, Core i/Calpella, Sandy Bridge, etc.)
  • generación de procesador (segunda, sexta, etc.) y luego
  • la velocidad del reloj del procesador.

En realidad, cuando quiero comparar velocidades de procesador consultoaprobadodechequeo de cuadernotablas de referencia. Los puntos de referencia, en mi opinión, son el mejor factor para medir y comparar la velocidad y el rendimiento del procesador.

información relacionada