Con la reducción de los costos de silicio y las crecientes necesidades de los consumidores, los fabricantes parecen estar presionando una de dos cosas: la velocidad del reloj y / o el conteo de núcleos. Con la forma en que van las cosas, ya no parece que la velocidad de reloj de los procesadores aumente, sino la cantidad de núcleos de procesador.
Recuerdo que hace solo unos años, tenía un procesador Pentium 4 de un solo núcleo rápido y agradable. Avance rápido hasta hoy, y no creo que pueda comprar un procesador de un solo núcleo (sin mencionar el aumento creciente de procesadores multinúcleo incluso en teléfonos celulares ). Tal como están las cosas, podríamos encontrar 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 el número de núcleos? Supongamos que estamos entrando en 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 (p. Ej., Cifrado, compresión de archivos, edición de imagen / video) que se beneficiarán más de uno u otro? ¿Hay algunos procesos que pueden ser, pero actualmente no (debido a razones técnicas) se aceleran al aumentar su paralelismo?
Suponga que el procesador hipotético tiene exactamente el mismo diseño de núcleo (tamaño de palabra, ancho de bit de dirección, tamaño de bus de memoria, caché, etc.), por lo que las únicas variables aquí son la velocidad del reloj y el conteo de núcleos. Y de nuevo, no estoy hablando de uno, dos o incluso cuatro núcleos; imagine decenas a cientos.
Respuestas:
Hay dos situaciones básicas que deben considerarse:
El procesador se usa con una computadora que solo hace cálculos para un solo programa
El procesador se utiliza para múltiples programas que se ejecutan al mismo tiempo.
La primera situación es donde la 'velocidad' del procesador es más importante, ya que el usuario quiere la capacidad de hacer cálculos de manera rápida y eficiente. Estas situaciones son típicamente para el procesamiento intensivo de cálculo, es decir, el cálculo de números primos para cifrado / descifrado
El segundo es donde los núcleos múltiples son útiles, ya que cada programa puede asignarse a un núcleo separado, liberando así a cada programa del 'cuello de botella' entre sí. En el mundo actual, el usuario promedio usará su computadora para múltiples programas a la vez, lo que hace que el procesamiento de múltiples núcleos sea algo deseable.
Sin embargo, multi-core ! = Velocidades más altas o mayor rendimiento en todos los casos. Dado que la mayoría de los programas están escritos para el procesamiento de un solo núcleo * , la velocidad del reloj sigue siendo importante. Se debe tener en cuenta una combinación de ambos (junto con muchos otros factores también) .
* Hay algunos programas, y con suerte pronto se crearán más, donde se pueden usar múltiples núcleos al mismo tiempo. El futuro del software se encuentra con esta " Programación Paralela ":
fuente
Personalmente, creo que el conteo central es el camino a seguir. El desarrollo de software se ha desplazado a los sistemas en red, por lo que los recursos locales ya no son los únicos recursos disponibles para usted. El factor más importante en cómo trabaja ahora es de qué red forma parte.
Observe el cambio a banda ancha móvil, conectividad constante, acceso remoto, etc., etc. Con eso, la conectividad constante requiere duración de la batería. Si bien es discutible qué factores de la CPU son más óptimos para la duración de la batería (tiene la ecuación de optimización clásica del valor de trabajo frente al tiempo), personalmente creo que si tuviera que elegir uno, elegiría más núcleos.
Intel ahora le permite alimentar núcleos a pedido. Si bien no es tan óptimo como no tener núcleos para dormir, 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.
fuente
Como ChrisF menciona en un comentario, depende. Pero como las respuestas como esa no son realmente respuestas, intentaré distinguir algunos escenarios en los que uno será más beneficioso que el otro:
En la mayoría de los procesos comunes que menciona, el número de núcleos no va a importar mucho, ya que la mayor parte del trabajo se realiza en un solo hilo que solo puede ejecutarse en un solo 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 usen y si se pueden ejecutar en paralelo.
Sin embargo, ha olvidado una de las tareas más comunes que se realizan en las computadoras hoy en día: la navegación. Varios navegadores populares abren cada pestaña en un proceso separado (Chrome es el único que estoy seguro hace esto, ya que es el que yo uso), lo que significa que si tiene 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 hilos del sistema operativo y demás), y sea 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 ser una mejora importante del rendimiento sin tener que construir núcleos de CPU extremadamente rápidos.
La clave para saber si un sistema de múltiples núcleos 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 hará muchas cosas diferentes simultáneamente o unas pocas, pero pesadas, cosas . Como esto diferirá mucho de un usuario a otro, también lo hará la respuesta a su pregunta.
Las otras respuestas también hacen un par de puntos importantes:
fuente
En primer lugar, las velocidades de un solo núcleo no han disminuido tanto. La única razón por la que la línea actual Sandy Bridge de Intel no supera el Pentium 4 de un solo núcleo en términos de megahercios es porque Intel carece de competencia, por lo que no tienen que presionar tanto.
En segundo lugar, la velocidad del reloj no lo es todo, incluso en un solo núcleo. Cuando se observa el rendimiento de la aplicación, nuevamente en comparación con Pentium 4, la línea actual de Intel es aproximadamente un 50% más rápida por ciclo de reloj . Las razones por las que Sandy Bridge es más rápido por ciclo de reloj que Pentium 4 (Prescott es la última encarnación del mismo) son multitudinarias, pero tienen un controlador de memoria inteligente de precarga, un controlador de memoria en el mismo dado con CPU y un paralelismo de nivel de instrucción (ILP) más alto Contribuir a eso.
El paralelismo a nivel de instrucción básicamente significa que el procesador mira las instrucciones y sus dependencias y si dos instrucciones no dependen la una de la otra, la CPU puede comenzar a cargar datos para ambos al mismo tiempo y posiblemente reordenar las instrucciones, de los datos para uno de ellos llegan antes que el otro.
Tercero, algunas aplicaciones se benefician muy bien de múltiples núcleos. Por ejemplo, Photoshop casi siempre prefiere más núcleos sobre la frecuencia de operación. Es decir. incluso un quad-core lento casi siempre supera a cualquier chip de doble núcleo, y cualquier doble núcleo supera a cualquier chip de un solo núcleo. Los tri-núcleos son una mezcla, a menudo ganan a los núcleos dobles, pero no siempre.
En general, las aplicaciones que realizan el mismo tipo de operaciones para muchos conjuntos diferentes de datos se benefician más del paralelismo. Por ejemplo, la compresión de video o la edición de fotos a menudo se pueden paralelizar con bastante facilidad. Por otro lado, los juegos de computadora han demostrado ser difíciles de paralelizar. Los gráficos en ellos, por supuesto, se paralelizan muy bien, pero esa parte se ejecuta en GPU, no en CPU. La física restante, la contabilidad del mundo del juego y las IA se paralelizan con menos facilidad.
fuente
En realidad, hoy en día el factor más importante no es la velocidad de reloj del procesador, hay muchas características nuevas lanzadas desde que este "factor de comparación" cayó en desuso.
Hoy debe analizar muchos factores para inferir sobre el rendimiento de los procesadores. Cosas como:
En realidad, cuando quiero comparar las velocidades del procesador consulto PassMark de Notebookcheck tablas 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.
fuente