
Específicamente, estoy mirando el i5-3570k o el FX-8350, pero me hizo pensar en una pregunta específica más general sobre cómo múltiples núcleos pueden mejorar la multitarea general.
He leído muchas reseñas, puntos de referencia, etc., básicamente todos dicen lo mismo: el I5 de 4 núcleos con frecuencia más rápida supera al FX de 8 núcleos con frecuencia más lenta en la mayoría de las aplicaciones, a menos que esa aplicación esté codificada específicamente para aprovechar más de 4 núcleos. Los juegos funcionan especialmente mejor en el i5.
Pero mientras leía me di cuenta de que casi todos los puntos de referencia se realizan en el vacío. Es decir, ese punto de referencia o software es lo único que se está probando. Pero si bien eso es bueno para probar ese software específico, no es un escenario del mundo real.
Por ejemplo, en cualquier momento del día puedo tener varios navegadores abiertos con varias pestañas, tal vez Photoshop o Visual Studio, varios programas en segundo plano (antivirus, Steam, Keepass, etc.). Y eso es en un día luminoso.
Entonces mi pregunta es: en teoría, si bien el 4core más rápido ejecutará piezas de software individuales más rápido por sí solo, ¿no podría un procesador de 8core ser mejor para ejecutar múltiples piezas de software, incluso si no están necesariamente optimizadas para 8core, simultáneamente?
Respuesta1
Carga de CPU de Linux
Una medida útil es el concepto Linux decarga de CPU. Básicamente, piense en cada núcleo de CPU con 1,00 unidades de carga disponibles y en cada tarea que se ejecuta al 100% de un núcleo con 1,00 unidades de carga utilizadas. Para un servidor con procesamiento intensivo, la carga ideal probablemente sea exactamente la cantidad de núcleos de CPU (carga de 4,00 para 4 núcleos de CPU).
Un bucle ocupado (algo como " while (true) ") puede ocupar el 100% de una CPU, que son 1,00 unidades de carga. Un punto de referencia de un solo subproceso también alcanza un máximo de 1,00. Un punto de referencia optimizado para múltiples núcleos podría ocupar más núcleos, hasta los 8.00 disponibles en el FX-8350.
Pero la mayoría de sus aplicaciones (Chrome + Firefox abierto, Photoshop, Visual Studio) no consumen tanta CPU cuando se ejecutan en segundo plano. Es cierto que pueden ejecutarse en varios núcleos, pero si solo usan el 10 % del tiempo disponible (0,10 unidades de carga), esas cuatro aplicaciones solo suman una carga de 0,40 y verá pocos beneficios al tener más de un núcleo de CPU. De manera similar, las aplicaciones ocupadas bloqueando el disco o los accesos a la red no usarían tiempo de CPU mientras esperan.
Carga Promedio > 4.00
En los casos en los que la carga de su aplicación esté entre 4.00 y 8.00, es probable que en estos casos se destaque el rendimiento del FX-8350. Una carga 5.00 en una CPU de 4 núcleos podría generar mucha contención por los recursos de la CPU, y el cambio de tareas entre tareas agrava la sobrecarga involucrada.
Carga promedio < 4,00
Sin embargo, su pregunta parece ser sobre los momentos en que las matemáticas no son tan claras: si 8 núcleos serían mejores en una carga de trabajo inferior a 4,00. Para una carga de trabajo de tipo servidor bastante constante, puede ejecutar algunas pruebas comparativas y ver si realmente hay algún beneficio. Para una carga de trabajo informática diaria y en constante cambio, no hay un ganador claro.
Respuesta2
Depende mucho de la aplicación, el sistema operativo y cómo ejecuta su trabajo.
Si una aplicación está diseñada para tener un solo subproceso, ningún núcleo adicional ayudará a su rendimiento. Sin embargo, podría ejecutar aplicaciones adicionales utilizando los otros núcleos, SI el sistema operativo fuera lo suficientemente inteligente como para distribuir el trabajo de esta manera. Por lo tanto, los núcleos adicionales pueden proporcionar un pequeño beneficio adicional, especialmente para múltiples aplicaciones que se ejecutan a la vez.
Los núcleos adicionales no proporcionan más capacidad de E/S. Por lo tanto, si una aplicación está principalmente vinculada a E/S, el aumento del rendimiento de los núcleos adicionales puede no ser sustancial.