CPU ¿Más núcleos siempre es mejor?

Info

13.07.2017 a las 21:28 hs 0 122 0

Una cuestión de nivel de actividad simultánea real





La respuesta rápida es sí. ¿Pero cuánto mejor? Por ejemplo: ¿rinden más 2 núcleos a 3GHz o 4 núcleos a 1,5GHz?

Los números elegidos para las frecuencias de reloj (1,5GHz y 3,0GHz) son arbitrarios. Son números redondos como para hacer clara la explicación.

La respuesta a este tipo de pregunta la obtuvieron hace 30 años los investigadores de la Cray Research Inc. (una empresa de investigación de supercomputadoras). Lo que obtuvieron se puede resumir en las siguiente ecuaciones:


2 CPUs =~ 1.6 CPUs
4 CPUs =~ 2.8 CPUs



Es decir, 2 CPUs no entregan el doble de rendimiento que un único CPU (como podríamos esperar). Sino que entregan sólo un 60% más. Es decir, trabajan como 1,6 CPUs (un poco más que un CPU y medio).
Y 5 CPUs (ahora se pone peor) trabajan tan sólo como 2,8 CPUs.

Este resultado tienen en cuenta que el código ejecutado comparte la memoria principal del equipo, y que además éste está escrito para eficientemente usar un máximo de paralelización (para aprovechar los múltiples hilos que ofrece un multinúcleo).


Entonces, la respuesta a la pregunta inicial es (en general), si realizamos los cálculos, que el CPU de dos núcleos rendirá mejor. En matemática sería así:

Los GHz efectivos (la cantidad de ciclos de reloj que efectivamente van a ejecutar instrucciones por unidad de tiempo) del CPU de dos núcleos será mayor (en gran parte porque 3,0 GHz es el doble que 1,5GHz, y además, por 4 núcleos nunca pueden trabajar al mismo tiempo, en un escenario real).

Este resultado sólo teniendo en cuenta programas escritos específicamente para utilizar más de un hilo simultáneamente. Si, encima, tenemos en cuenta a que ejecutaremos muchos programas escritos para ejecutarse en mono-hilo, 3,0GHz siempre serán mejores que 5GHz en estos casos.


Algunos detalles adicionales para notar/b]

Por supuesto, en tareas muy específicas donde la paralelización es clave, estos resultados podrían variar un poco mejor a favor del multinúcleo. Pero en terminos generales, la regla anterior se cumple muy ajustadamente.

La memoria caché y la "competencia" de los núcleos entre sí

Finalmente, el tamaño de la memoria caché del CPU tiene un impacto crítico en el rendimiento. Mientras más caché tiene un CPU, la probabilidad de que un núcleo esté "bloqueando" al otro es menor. Los núcleos compiten por el uso de esta memoria (y también de la RAM), y cuando un núcleo está accediendo a la caché, los demás núcleos deben esperar hasta que el primero termine. 2 núcleos tienden a "colisionar" menos frecuentemente.

Los resultados que acá expongo fueron calculados en uno de estos bichitos (imagen) que producía Cray en los 80s y 90s. Y sigue siendo un muy buen criterio para caracterizar en términos generales los rendimientos comparables entre dos CPUs.

interblink

Posteado por:

interblink

Administrador

0 Comentarios


Cargando comentarios espera un momento...
No tienes permisos para comentar.
Para comentar necesitas estar Registrado. O.. ya tienes usuario? Logueate!