Núcleos de CPU: cuanto más, mejor?

69

Actualmente tengo un procesador de doble núcleo en el trabajo y un procesador de cuatro núcleos en casa. He notado que ambas PC son bastante iguales en cuanto a iniciar aplicaciones / navegar por la web.

La diferencia que puedo ver es que mi doble núcleo es 2.8GHz y mi cuádruple núcleo es 2.4GHz.

¿Es mejor tener un doble núcleo con una velocidad de reloj rápida o un núcleo cuádruple con una velocidad de reloj mediocre?

Travis
fuente
55
'Rápido' y 'mediocre' son relativos. En su caso, un núcleo cuádruple sería mejor porque la diferencia en las velocidades de reloj es de solo 400 MHz. Sin embargo, un núcleo dual de 3 GHz es mejor que un núcleo cuádruple de 1.5 GHz, en su mayor parte.
Sasha Chedygov el
No use GHz para comparar procesadores, use algunos resultados de prueba de velocidad / carga para comparar la velocidad efectiva de un procesador. Un procesador dual core de 3GHz podría ser más lento que un i7 de 2,4 GHz (i7 no tiene bus frontal, ...) ...
Ben
2
@Ben, debería ser obvio que sería la misma arquitectura de procesador (por ejemplo, 45nm Core 2 Duo vs Quad).
Mircea Chirea

Respuestas:

53

NOTA: Esta respuesta fue escrita hace 8 años. La programación paralela se ha vuelto más relevante. Esto probablemente se deba a los límites de velocidad de reloj inherentes y a los límites de tamaño del transistor que se aproximan rápidamente.


Su problema principal es el software no escrito para multi-core.

Mire el excelente artículo de Jeff Atwood sobre cómo elegir Dual core o Quad Core .

para la mayoría del software, llega a un punto de rendimientos decrecientes muy rápidamente después de dos núcleos. En los equipos de escritorio de cuatro núcleos y los rendimientos decrecientes , cuestioné cuán efectivamente el software de hoy puede realmente usar incluso cuatro núcleos de CPU, mucho menos los inevitables ocho y dieciséis núcleos de CPU que veremos dentro de unos años.

Te responden aquí (resaltado copiado del artículo de Jeff),

Sin embargo, hubo algunas sorpresas aquí, como Excel 2007 y la configuración de "operaciones concurrentes" de Lost Planet. Es posible que la ingeniería de software eventualmente avance al punto de que la velocidad del reloj sea menos importante que el paralelismo. O eventualmente podría ser irrelevante, si no podemos elegir entre velocidades de reloj más rápidas y más núcleos de CPU. Pero mientras tanto, la velocidad del reloj gana la mayor parte del tiempo. Más núcleos de CPU no es automáticamente mejor . Los usuarios típicos estarán mejor con la CPU de doble núcleo más rápida posible que puedan pagar.


La cuestión del bus frontal (ese término siempre me ha divertido).
Con Nehalem las cosas cambian ... como dijo ArsTechnica el año pasado.

La Ley de Moore les ha dado a los diseñadores de procesadores una vergüenza de la riqueza de los transistores, y en ninguna parte es eso más evidente que en el procesador Nehalem de 45 nm de Intel. Debutando en variantes de 4 y 8 núcleos a finales de este año, Nehalem incluye una tonelada de hardware en un zócalo de procesador único. (Los primeros números ponen el recuento de transistores de un Nehalem de cuatro núcleos en 781 millones; todavía no han aparecido números para el modelo de 8 núcleos). Pero tratar de alimentar todo ese hardware con la arquitectura de bus frontal existente de la plataforma Intel sería una locura. Entonces, igual de importante, Nehalem también hace sonar la sentencia de muerte desde hace mucho tiempo para la arquitectura de bus frontal positivamente geriátrica de Intel.

El cambio radical en la situación del ancho de banda del sistema de Intel que representa la nueva interconexión QuickPath (QPI) de Intel es quizás el factor más importante que dio forma al diseño de Nehalem. Entre QuickPath y el controlador de memoria integrado de Nehalem, un procesador Nehalem tendrá acceso a una cantidad de ancho de banda agregado sin precedentes, especialmente en implementaciones de dos y cuatro sockets.

AMD movió el controlador de memoria al procesador antes y usó Hypertransport.

nik
fuente
3
El otro problema a considerar es el rendimiento del bus frontal. ¡Con tantos núcleos, tanta memoria y programas tan grandes, el acceso a la memoria se vuelve crítico! Si la CPU tiene que fallar para llegar a la memoria principal, perjudicará el rendimiento. Mientras más tareas múltiples, más probable es que esto también suceda, independientemente de cuán obscenamente grande se vuelva el caché de chips.
geoffc
1
En los 8 años desde que se abrió esta pregunta en 2009, las cosas han cambiado. El software ahora es mucho mejor para aprovechar muchos núcleos, y esta tendencia solo continuará.
Contango
1
@Contango De acuerdo, esta respuesta debe actualizarse para reflejar las tendencias actuales.
18

En mi experiencia, hay un gran beneficio de rendimiento que va de uno a dos núcleos. De repente, un programa de CPU alta no bloquea su máquina ni la hace inusualmente lenta. Diferencia masiva

¿Pero de dos a cuatro? Para el 99% de las personas no hará la diferencia. Tendrá que ejecutar muchos programas a la vez o utilizar programas que puedan aprovechar más de 2 núcleos (y, en realidad, no hay muchos de esos). Ciertos codificadores de medios vienen a la mente.

También hay una diferencia entre los Intel Core 2 y los AMD Phenoms a este respecto. AMD usa Hypertransport, que es un protocolo punto a punto, por lo que cada núcleo tiene un ancho de banda dedicado. Intel Core 2 (pero no Core i7 y otras CPU basadas en Niehalem) usan un bus frontal, que es ancho de banda compartido para que tenga más núcleos compitiendo por el mismo ancho de banda.

Potencialmente, esto puede hacer que un mismo reloj de cuatro núcleos (marginalmente) sea más lento en algunas circunstancias. La relación calidad-precio sigue siendo con dos núcleos en mi humilde opinión. Dicho esto, tengo un núcleo cuádruple.

Peter Mortensen
fuente
1
El Nehalem usa QPI (QuickPathInterconnect) que se encuentra en el mismo parque que Hypertransport.
nik
10

Me gusta cómo lo resume Donald Knuth :

Para mí, parece más o menos que los diseñadores de hardware se han quedado sin ideas, y que están tratando de pasar la culpa de la futura desaparición de la Ley de Moore a los escritores de software al darnos máquinas que funcionan más rápido solo en unos pocos puntos de referencia clave! No me sorprendería en absoluto si toda la idea de subprocesos múltiples resulta ser un fracaso, peor que el enfoque "Itanium" que se suponía que era tan terrible, hasta que resultó que los compiladores deseados eran básicamente imposibles de escribir .

Permítanme decirlo de esta manera: durante los últimos 50 años, he escrito más de mil programas, muchos de los cuales tienen un tamaño considerable. No puedo pensar ni siquiera en cinco de esos programas que se habrían mejorado notablemente por paralelismo o subprocesamiento múltiple. Seguramente, por ejemplo, múltiples procesadores no son de ayuda para TeX.

Para algunas aplicaciones, es muy fácil aprovechar múltiples núcleos. Pero algunas otras aplicaciones nunca se beneficiarán de ellas, mientras que otras podrían beneficiarse si los desarrolladores las optimizan (lo cual es muy difícil).

Bastien Léonard
fuente
44
En general, estoy de acuerdo en que los núcleos múltiples no ayudarían a TeX. Pero sería una gran victoria para un editor gráfico de TeX, que llama repetidamente a TeX para actualizar la pantalla a medida que se edita el documento.
KeithB el
3
Este es uno de esos lugares donde mi corazón está por Knuth, pero mi mente no está del todo de acuerdo.
nik
5

Para mi escritorio principal en mi empleador, uso una máquina Xeon de cuatro núcleos con 8 GB de RAM.

Cuando estoy programando, y tengo Internet Explorer, Chrome, TweetDeck, Visual Studio 2008 (o 2010) y una instancia local de Sql Server Express ... todo funciona bien.

Comparativamente, tenía un doble núcleo antes, y las cosas comenzarían a gatear con solo Visual Studio, Chrome y Sql Express ejecutándose.

Es una cuestión de lo que haces con la máquina. Si eres un usuario avanzado que estará editando videos, modelando en 3D o programando con recursos significativos ... entonces sí, querrás el quad-core y mucha RAM.

Jeff Fritz
fuente
1

Para el uso diario y los programas que no están optimizados para múltiples núcleos, un doble núcleo rápido vencerá a un quad-core más lento.

A medida que pasa el tiempo y las aplicaciones multiproceso se convierten en la norma, los núcleos cuádruples avanzarán.

Desde el punto de vista de su inversión, los núcleos dobles aún tienen una ventaja cómoda.

Auxonic
fuente
1

Depende. Si está haciendo cosas que utilizarán cada núcleo, 4 núcleos es mejor (edición de video, renderizado, etc.). La mayoría de las personas encontrarán dos núcleos rápidos mejor en este momento porque no hay muchas aplicaciones escritas para aprovechar al máximo los 4 núcleos

David Hayes
fuente
1

Tenga en cuenta que los últimos procesadores i7 pueden aumentar la velocidad del reloj en los núcleos activos cuando no se necesitan todos; por ejemplo, si tiene un núcleo cuádruple a 2.4GHz, pero el software solo necesita 2 núcleos para ejecutarse, entonces puede sincronizarse automáticamente hasta 2.8GHz (no es una cifra real, solo un ejemplo).

Y creo que la última generación del i7 puede registrar 3 o 4 bins si solo se necesitan uno o dos núcleos. Como tal, es posible que no termine siendo tan difícil como lo es actualmente ...

jerryjvl
fuente
1

De acuerdo con Anandtech.com :

Todo se reduce al TDP del chip, o su punto de diseño térmico. Cuanto más limitada sea una plataforma TDP, más podrá obtener del modo Turbo de Intel. Permítanme decirlo de otra manera; Para ajustar cuatro núcleos en un TDP de 130 W, cada núcleo debe funcionar a una velocidad de reloj más baja que si solo tuviéramos un núcleo en ese mismo TDP.

En TDP más altos, generalmente hay suficiente espacio libre térmico para ejecutar los núcleos individuales bastante alto. En los TDP más bajos, los fabricantes de CPU tienen que hacer una compensación entre el número de núcleos y sus velocidades de reloj; ahí es donde podemos divertirnos un poco.

Todo esto es en el contexto de tener que elegir entre núcleos (o hilos) y frecuencia de núcleo.

Ivo Flipse
fuente
¿Sería esto más relevante para un interés de overclocking? Buen artículo de todos modos.
nik
0

En su caso, el quad-core sería mejor. Recuerde, cuantos más núcleos tenga, más procesamiento paralelo puede hacer. Entonces, en su doble núcleo, es posible que pueda ejecutar una sola aplicación más rápido que el cuádruple, pero el cuádruple puede ejecutar 4 aplicaciones más rápido de lo que podrá hacerlo el doble. Además, si una aplicación está escrita para procesarse en paralelo (multiproceso), la aplicación funcionará mejor en una arquitectura de varios núcleos.

Sin embargo, todo esto es relativo, ya que un quad-core que funciona a 100 Mhz no va a realizar un doble núcleo de 4 Ghz. En términos generales, sin embargo, cuantos más núcleos, mejor.

José
fuente
Asume que una aplicación que puede funcionar en dos núcleos también podrá aprovechar cuatro núcleos. Eso no siempre es cierto.
nik
@nik No, no lo estoy, estaba afirmando que una aplicación multiproceso funcionará mejor en una arquitectura de múltiples núcleos. No indiqué nada sobre la ganancia proporcional sobre el número de núcleos que tiene.
Joseph
0

Depende de lo que esté haciendo y de las capacidades de su sistema operativo y sus aplicaciones.

Si tiene un sistema operativo liviano y ejecuta una sola aplicación vinculada a la CPU que solo puede usar un procesador, entonces dos procesadores a mayor velocidad serán una mejor opción.

De lo contrario, si el sistema operativo puede programar todos los núcleos de manera efectiva y está ejecutando muchas aplicaciones o aplicaciones que pueden hacer uso de más de un procesador de cuatro núcleos más lento, entonces uno esperaría un mejor rendimiento para un menor consumo de energía y, por lo tanto, una menor producción de calor.

mas
fuente
0

Si está haciendo una gran cantidad de codificación de video, renderizado 3D o compilaciones de código fuente distribuido, cuantos más núcleos, mejor. Verá una marcada diferencia en el rendimiento de este tipo de aplicaciones a medida que pase de 1 a 2 a 4 a 8 núcleos.

De lo contrario, ejecutar aplicaciones estándar realmente no se beneficiará de más núcleos. Incluso los juegos realmente no explotarán múltiples núcleos tanto. En mi opinión, es mejor gastar el dinero en una mejor tarjeta gráfica.

Nick Haddad
fuente
0

Depende

Mucho más.

Puede encontrar fácilmente un quad-core utilizando solo dos núcleos. Esto tiene que ver en parte con el sistema operativo y con el diseño del software. Más aún, todavía comparten todo lo demás, particularmente la memoria, el disco y los dispositivos.

Usted sabe que el sistema operativo no arrancará (notablemente) más rápido y las páginas web no se descargarán más rápido (aunque podrían dibujar más rápido).

dlamblin
fuente