¿Un recuento de núcleos más alto o una mayor velocidad de reloj son más beneficiosos para el rendimiento de una computadora? [cerrado]

16

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.

Penetración
fuente
99
Todo dependerá de lo que quieras hacer en esa computadora. Múltiples núcleos son buenos para algunas cosas, velocidades de reloj más altas para otras.
ChrisF
@ChrisF Yo personalmente conozco la respuesta, pero pregunto esto por dos razones. El primero es tener esta información en el sitio web (solo lo he visto en relación con los procesadores de núcleo doble o cuádruple), y el segundo es tratar de dar a las personas una idea de lo que vendrá "en el futuro" y muestra cuáles son las aplicaciones de ambos lados de la ecuación.
Avance el
1
Relacionado: Núcleos de CPU
slhck
3
Yo diría que si bien esta es una buena pregunta para hablar sobre mientras que tener una pinta, que es más o menos no una pregunta buena pila de intercambio.
EBGreen
1
Hay demasiadas variables, qué pasa si y otros parámetros + cambios tecnológicos en curso para desarrollar una respuesta sucinta que sea relevante por más de un período específico de tiempo. Este es un tema interesante para un foro o blog, pero no como algo que se debe precisar como una "respuesta". He votado para cerrar por esta razón, ¡así que comience la llama!
Linker3000

Respuestas:

12

Hay dos situaciones básicas que deben considerarse:

  1. El procesador se usa con una computadora que solo hace cálculos para un solo programa

  2. 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 ":

Los desarrolladores de software ya no pueden confiar en el aumento de la velocidad del reloj solo para acelerar las aplicaciones de un solo subproceso; en cambio, para obtener una ventaja competitiva, los desarrolladores deben aprender cómo 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 entregan, con el software apropiado, la ejecución totalmente paralela de múltiples hilos de software.

- Intel

James Mertz
fuente
La mejor respuesta que he visto hasta ahora, +1. ¿Sabes si es posible acelerar el cifrado / descifrado con algún tipo de algoritmo paralelo (o existe tal cosa)?
Avance
2

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.

surfasb
fuente
2

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:

  • el rendimiento del procesador ya no se trata solo de la velocidad del reloj o el número de núcleos; otras partes del procesador se están convirtiendo en cuellos de botella a medida que la velocidad del reloj y el recuento de núcleos mejoran.
  • para la mayoría de los usuarios, el rendimiento del procesador ni siquiera es el cuello de botella para empezar. Si pasa su tiempo en aplicaciones alojadas como Google Docs, la velocidad de su tarjeta de red será más importante que la velocidad de su (s) núcleo (s) de procesador. Si está viendo o editando material de película de alta resolución, el rendimiento del disco duro será más importante. Etc ...
Tomás Aschan
fuente
+1 por pensar un poco y realmente dar explicaciones, pero me gustaría señalar una cosa: sí, algunos navegadores colocan cada pestaña en un proceso separado , pero eso se hace en caso de que el proceso se bloquee. La mayoría de los navegadores, como mínimo, ejecutan cada pestaña en un subproceso independiente, y los sistemas operativos tienen la capacidad de ejecutar múltiples subprocesos (del mismo proceso) en diferentes núcleos.
Avance
IE 9 hace el método multiproceso. Sin embargo, creo que usan un número determinado de procesos y simplemente comparten todas las pestañas entre esos procesos. Resulta en muchos menos procesos de los que Chrome puede terminar, mientras que todavía significa que solo perderá unas pocas pestañas si todo se reduce en un montón teñido de Redmond.
music2myear
Ah, y también depende del software. Si bien el sistema operativo generalmente puede manejar la gestión del tráfico y enviar subprocesos en espera a los núcleos disponibles (imagen mental de match.com pasando dentro de mi grotty silicon), programas que son multiproceso (la mayoría de los productos Adobe Creative Suite y otros bien soportados) , herramientas modernas de desarrollo multimedia) aprovecharán mucho mejor las capacidades de un sistema multi-core.
music2myear
2

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.

Zds
fuente
1

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:

  • numero de nucleos
  • número de hilos de operación paralelos
  • familia de procesadores (Dual core, Pentium, Core i / Calpella, Sandy Bridge, etc.)
  • generación del procesador (2da, 6ta, etc.) y luego
  • velocidad de reloj del procesador.

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.

Diogo
fuente
Sí, pero para simplificar las cosas, supongamos que todo lo demás es igual (la misma cantidad de caché por núcleo, el mismo ancho de bus de direcciones, el mismo tamaño de palabra, etc.). Los núcleos son exactamente iguales, es solo a) cuántos, o b) qué tan rápido.
Avance el
Um, la familia de procesadores y la generación no tienen nada que ver inherentemente con la velocidad del procesador. Después de todo, los procesadores Atom son mucho más nuevos que los P4 o los procesos Core y Core2, pero nadie diría que son más rápidos. Otras cosas que tienen un efecto más directo en la velocidad de la CPU son el caché incorporado, la cantidad de registros, la arquitectura del chip, el tamaño de las vías conductoras (proceso de fabricación nm), las capacidades de operación de punto flotante, etc.
music2myear
@ music2myear: cuando me refiero a la generación, estoy hablando de la familia ( superuser.com/questions/314757/… ). En realidad, Atom D525 es mejor que muchos Core 2 ( cpubenchmark.net/cpu_lookup.php?cpu=Intel+Atom+D525+%40+1.80GHz )
Diogo