Entonces… porque en todas las benchmarks un dual core como el E8400 por ejemplo da mas rendimiento que un QuadCore Q6600??
Coño, porque cada core del E8400 va mucho más rápido que los del Q6600. Creo que no se me ha entendido, pensaba que era evidente que me refería que a igual velocidad de cores, siempre vas a ganar teniendo 4 que no 2, pero una ganancia tan ínfima según para que, que no merece la pena.
Veo que a este post no se contesta desde hace tiempo, pero es que se puede sacar mucho más de él. Yo digo que se están dejando muchas cosas en el tintero y desde mi ignorancia pregunto, ¿Depende de las aplicaciones el máximo aprovechamiento de los nucleos de un procesador quad-core?
Bajo mi punto de vista, yo creo que no, que estáis bastante confundidos. Yo creo que el reparto del proceso lo debería de hacer el sistema operativo, que es al fin y al cabo el que gestiona los recursos del sistema. Repito, no soy ningún experto pero si sé como funciona todo esto.
¿Porque culpais a las aplicaciones del mal aprovechamiento del procesador? Una aplicación es ejecutada y gestionada por el S.O.
Bueno dejando todo esto aparte, entiendo que lo que estais diciendo, esté basado en algún bechmarck, en el que veais la utilización de cada uno de los cores, no? Sin contar con el de Windows, todos conocemos el al menos, el mal aprovechamiento de la RAM que hace windows. Pero no sabía que también gestionara mal los cores.
Bueno espero que podais sacarme de dudas.
Un saludo y a ver si podemos estrujar más este post.
Es evidente que el que maneja los recursos es el sistema operativo a través del planificador y que por tanto será este el que decida qué ejecuta cada procesador disponible en el sistema. Pero, por mucho que planifique, si tu programa corre con un solo proceso o un solo thread de ejecución, por millones de cores que tengas siempre se va a ejecutar en uno solo, y nada puede hacer el planificador. Si la aplicación en cambio se ejecuta con varios threads, el planificador puede decidir meterselos todos al mismo microprocesador, o distribuir el trabajo entre varios cores, que dependiendo de la política que siga y del resto de procesos del sistema, será lo más lógico.
Si de entrada la aplicación no está preparada, el sistema operativo no puede hacer nada.