CPU ¿Más núcleos siempre es mejor?
13.07.2017 a las 21:28 hs 0 122 0
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.
Posts Relacionados:
- Codigo Java [BALANZA] ~ [Java POO]
- Sin los Beatles el mundo estaria mejor Juanse
- Los juegos de Wii se ven mejor en Wii U
- Codigo JAVA [Tipo De Angulos] ~ [JAVA - POO]
- Colombiano será dirigido por el mejor DT del Mundo
- 8 Formas naturales para dejar de fumar para siempre
- Las CPU ARM de Apple costarán 3 veces menos que las Intel
- Plástico a partir de ajo que conserva mejor los alimentos
- La mejor manera de comer pastas y no engordar
- La suma de 2 números en PHP
Generada por Vitutienda