Ok, conozco el argumento clásico para evitar los núcleos cuádruples. A nivel de aplicación, la mayoría de las aplicaciones no se han escrito para múltiples núcleos. La mayoría del software de escritorio ni siquiera necesita paralelización.
Sin embargo, a nivel del sistema operativo, parece obvio que el sistema operativo dividiría los procesos entre los distintos núcleos. ¿No sería esto en sí mismo un argumento para obtener más núcleos? ¿Eso no ayuda mucho en muchas situaciones? Tienes algunas tareas intensivas de CPU en marcha; esos procesos podrían estar acaparando el 100% de sus núcleos, pero aún puedo navegar por la web y hacer preguntas sobre SuperUser en mi último núcleo ... ¿verdad?
computer-building
multi-core
Doug T.
fuente
fuente
Respuestas:
El sistema operativo no puede dividir un proceso de subproceso único individual en varios núcleos (aunque puede cambiar en qué núcleo se ejecuta una aplicación, pero esa es una pregunta diferente), sin embargo, puede ejecutar múltiples procesos, cada uno en su propio núcleo. Entonces, sí, si tiene múltiples aplicaciones de procesador intensivo ejecutándose en segundo plano, es probable que todavía tenga un núcleo libre sentado haciendo poco o nada que pueda usar para ejecutar otras aplicaciones.
fuente
Para agregar a la respuesta de @ heavyd, la razón de esto es que el sistema operativo no tiene la capacidad de determinar qué partes del proceso se pueden ejecutar en paralelo y cuáles no. Si un programa no está diseñado para ejecutarse en núcleos paralelos, puede tener rutinas dentro de la aplicación diseñadas para ejecutarse secuencialmente al mismo tiempo. Esto puede causar todo tipo de problemas (como si 2 rutinas usan el mismo bloque de memoria pero no están destinadas a ejecutarse al mismo tiempo).
El sistema operativo puede usar múltiples núcleos para múltiples procesos, ya que de todos modos lo hace, pero difundir una aplicación de un solo núcleo a través de múltiples núcleos causará todo tipo de comportamientos inesperados.
fuente
Cuando se trata de eso, no importa si un procesador está al 1% de uso o al 95% de uso (siempre que sea estable al 95% y no alcance el máximo), los programas se ejecutarán a la misma velocidad siempre que No está llegando al 100%. Los ciclos de CPU no utilizados simplemente se desperdician.
Debido a esto, Windows 7 (en procesadores compatibles) tiene una tecnología conocida como "estacionamiento central" que básicamente desactiva los núcleos no utilizados en su computadora para ahorrar electricidad.
Las aplicaciones de un solo subproceso se transfieren automáticamente a núcleos alternativos; no estoy seguro de la tecnología detrás de esto, pero sé que funciona bastante bien.
fuente
Sus sentimientos iniciales son correctos: hay una inclinación negativa hacia múltiples núcleos, y no es realmente todo lo que se merece.
En el pasado, cuando la mayoría de los usuarios solo usaban su PC de escritorio para un simple procesamiento de texto, es posible que haya habido una discusión. Pero en estos días, con elementos como navegadores con múltiples pestañas, cada uno en su propio proceso (cromo y, por ejemplo, separación de nivel de proceso para pestañas) más cosas como decodificadores de video dentro de páginas web y tareas adicionales que podrían descargarse fácilmente como sobre la marcha renderizado de efectos también conocido como css3, incluso el navegador solo puede justificar una razón para mucha más memoria RAM y algunos núcleos.
Agregue a eso el hecho de que algunos usuarios también pueden jugar en esta PC, o usar herramientas como garageband, imovie, handbrake, múltiples núcleos puede ser un gran beneficio.
No es cierto suponer que necesita maximizar (es decir, 100% de uso de CPU en un solo núcleo) un núcleo para que otro núcleo sea útil. Porque estamos hablando de paralelismo aquí. El cambio de tareas dentro de una CPU generalmente realiza un lote de operaciones antes de intercambiar su pila a otro proceso. No todas estas tareas están vinculadas a la CPU, por lo que no verá un pico de CPU aunque el núcleo esté bloqueado.
Básicamente, tienes razón, pero ¿cuál es el número más eficiente de núcleos? 2? 4? 12? Esto probablemente dependerá de los hábitos de los usuarios ... Tiendo a este 2-4 para la mayoría de los usuarios, pero solo estoy adivinando.
fuente