Se ha demostrado en otras preguntas que, debido al estado de las aplicaciones informáticas, los procesadores multinúcleo sufren rendimientos decrecientes. ¿Sigue siendo el caso en el mundo de hoy?
¿La mayoría de las aplicaciones nuevas adoptan subprocesos múltiples y, por lo tanto, se aprovechan de tener múltiples núcleos? Si no es así, ¿la nueva ayuda del sistema operativo de 64 bits aprovecha los núcleos al asignar tareas / procesos a diferentes núcleos? ¿O los procesadores multinúcleo siguen sufriendo los mismos (o similares) rendimientos decrecientes?
Haga una copia de seguridad de cualquier reclamo con referencias.
cpu
multi-core
community-faq-proposed
rishimaharaj
fuente
fuente
Respuestas:
Depende en gran medida de lo que hagas.
Para Word y Excel y Minesweeper normales y cualquier otra cosa que use tu madre, un núcleo sigue siendo suficiente y más de dos es una exageración. Este tipo de aplicaciones pasan la mayor parte del tiempo inactivas, esperando la entrada del usuario.
Para los juegos, se beneficiará de al menos dos. Después de eso depende del juego. Teóricamente, podría ejecutar a cada oponente de IA en un hilo separado, pero la lógica central del juego no se puede paralelizar fácilmente: necesita un lugar donde todos los resultados se unan para formar un estado de juego coherente. Por lo tanto, generalmente hay un hilo "principal" en el que todos esperan.
Para multimedia, procesamiento de números reales y ciencia, cada núcleo cuenta. Estas son tareas que son inherentemente multiproceso o que se pueden realizar fácilmente, y los desarrolladores tienen un fuerte incentivo para aprovechar toda la potencia de procesamiento disponible.
A los usuarios avanzados les gusta realizar múltiples tareas. Torrent, VirtualBox, captura de pantalla, video, minecraft y navegación web se ejecutan al mismo tiempo. Por lo tanto, se beneficiará de que cada aplicación que tenga mucha CPU tenga su propio núcleo. Hoy en día es popular transmitir en vivo tu juego. Así que son dos núcleos para el juego, al menos uno más para el hilo del codificador y al menos uno más para el resto del sistema. Eso es al menos 4 núcleos.
fuente
Me temo que la respuesta sigue siendo, como siempre ha sido, "depende de lo que estés haciendo".
Sí, hay rendimientos decrecientes al agregar más y más núcleos, y siempre los habrá si solo ejecuta una aplicación a la vez .
Incluso en una aplicación multiproceso bien hecha, muchas de las tareas que se realizan se realizan para esperar los componentes más lentos de la máquina (disco duro, conexión en red) sin afectar el rendimiento aparente para el usuario. Estos no pueden mejorarse mediante una mayor paralelización, por lo que cualquier límite de aceleración teórico es inalcanzable para fines prácticos.
Vale la pena señalar que hay pocas aplicaciones "grandes" que no son multiproceso (solo consulte el equivalente del Administrador de tareas de su sistema operativo, debería poder decirle cuántas pertenecen a cada proceso; mi Firefox está usando 31, por ejemplo). )
Por supuesto, ejecutar múltiples aplicaciones no interdependientes no está tan limitado por estos límites. A medida que agrega más núcleos, puede ejecutar más aplicaciones al mismo tiempo con una pequeña caída en el rendimiento del procesamiento (sin embargo, el rendimiento del disco duro, las redes, etc., no escala tan bien). En la práctica, incluso esto también está sujeto a rendimientos decrecientes ya que hay una sobrecarga inevitable para administrar la distribución del trabajo entre núcleos, tuberías de comunicación, etc.
Por ejemplo, esta publicación de Tom's Hardware (de 2009) intenta analizar el rendimiento de unos pocos procesadores multinúcleo en aplicaciones simultáneas, ejecutando un juego junto con un escaneo AVG (los cuales probablemente sean multiproceso). Los procesadores de cuatro, tres y dos núcleos funcionan de manera similar solo con el juego, pero agregan el escaneo AVG simultáneo y el rendimiento (medido por FPS promedio) cae en un 22%, 40% y 59% respectivamente.
Por lo tanto, si bien un núcleo cuádruple no ofreció un aumento del rendimiento sobre un núcleo doble cuando se ejecuta una aplicación intensiva, tan pronto como apareció otra tarea intensiva, terminó siendo el doble de eficaz. Desafortunadamente, no puedo encontrar mucho más que investigue qué tan bien esto escala con más núcleos y tareas más intensas.
Y luego debe tomar nota de las características modernas de los procesadores como Turbo Boost de Intel / Turbo Core de AMD. Estas características particulares permiten que un procesador de múltiples núcleos estacione los núcleos (póngalos en un modo más lento y de baja potencia) y use la energía de reserva para overclockear los núcleos que permanecen activos, lo que permite que el procesador se optimice para proporcionar tanta potencia de procesamiento como sea posible para la cantidad de tareas que se le presentan.
fuente
Para agregar combustible al fuego, leí aquí que Android en realidad se ralentiza al tener más de un núcleo:
fuente
Por supuesto, depende de lo que esté haciendo, pero sí, hay rendimientos decrecientes.
Las aplicaciones simples y cotidianas, como el procesamiento de textos o la navegación web, se benefician poco de tener más de dos núcleos de procesador. Las aplicaciones de computación científica y juegos tienden a hacer un mejor uso de cuatro (o más) núcleos y / o capacidad de hipertrontado, ya que tienden a estar diseñados para aprovechar al máximo el hardware moderno, pero el beneficio de más de cuatro núcleos es limitado.
Además, no todo está vinculado al cálculo. Agregar núcleos de procesador no ayudará si su carga de trabajo está vinculada a E / S. Si alguna vez instaló un SSD para reemplazar un disco duro mecánico, probablemente sabrá que el rendimiento informático cotidiano está limitado la mayoría de las veces por el almacenamiento de su computadora. En entornos de servidores ocupados donde se utiliza una gran cantidad de núcleos para permitir que el sistema maneje grandes cantidades de usuarios y solicitudes simultáneamente, se utilizan matrices de discos especializadas, SSD y otros sistemas de almacenamiento para garantizar el máximo rendimiento bajo carga.
fuente