Saturday, May 2, 2009

Mitos y verdades de los chips multi-núcleo

Años atrás, la frecuencia de reloj era la única medida de performance de los microprocesadores. A medida que los fabricantes de chips fueron encontrando límites en cuanto a las posibilidades de seguir elevando la frecuencia, comenzaron a aumentar la performance mediante el agregado de núcleos de procesamiento. Sin embargo, una mayor cantidad de núcleos no siempre es la solución.

Los benchmarks muestran que, para ciertos usos, los procesadores de cuatro núcleos ofrecen una menor performance que un procesador de doble núcleo con igual frecuencia de reloj. Según informa la organización gubernamental estadounidense Sandia National Laboratories, la razón de este fenómeno es la disponibilidad de memoria.

El equipo de Sandia encontró que el simple agregado de más núcleos en un procesador no siempre mejora la performance, y que en un punto la performance incluso disminuye. Las simulaciones llevadas a cabo por los investigadores mostraron que pasar de un procesador de doble núcleo a uno de cuatro núcleos ofrece un aumento significativo de performance, pero que pasar de cuatro a ocho núcleos agrega una mejora insignificante en este sentido. Cuando se pasa de ocho a 16 núcleos, la performance disminuye.

Para demostrar esta teoría se usaron simulaciones con algoritmos para derivar conocimiento desde grandes conjuntos de datos. Los investigadores encontraron que, al pasar a un chip de 16 núcleos corriendo tales algoritmos, la performance se equiparaba a la de un sistema con sólo dos núcleos.

El problema, según informa el equipo de investigación, está en la falta de ancho de banda de memoria, junto con la competencia entre los núcleos para utilizar el bus de memoria disponible del procesador. Para explicar mejor el problema se utiliza una analogía con los cajeros de un supermercado. Si dos cajeros se dedican a sumar los artículos comprados, el paso por la caja se hace más veloz. Si cuatro cajeros se dedican a la tarea, el proceso se acelera aún más. Sin embargo, si se destinan ocho o 16 cajeros para el trabajo, surge el problema de hacer llegar los artículos a cada cajero, lo cual puede derivar en un trabajo más lento que cuando se emplea una menor cantidad de cajeros.

Arun Rodrigues, miembro del equipo de Sandia, explica que “en cierta forma, los resultados destacan lo obvio: muchas de nuestras aplicaciones están limitadas por el ancho de banda de memoria aún cuando se utiliza un único núcleo. Pero como la industria no tiene una solución conocida para el problema, muchas veces simplemente se lo ignora”.

James Peery, director del centro de computación, información y matemática de Sandia, observa que “la dificultad está en la contención entre módulos. Todos los núcleos piden memoria a través del mismo conducto. Es como tener dos, cuatro u ocho personas hablándole a uno al mismo tiempo, diciendo ‘quiero tal información’. Entonces cada uno tiene que esperar hasta que llegue la respuesta, lo cual produce demoras”.

Los investigadores señalan que actualmente existen sistemas de memoria disponibles que ofrecen una performance drásticamente mejorada con respecto a lo que estaba disponible años atrás, pero los problemas subyacentes fundamentales de la memoria subsisten.

Sandia está trabajando conjuntamente con el Oak Ridge National Laboratory (ORNL) en un proyecto que busca allanar el camino para la supercomputación del orden de los exaflops. Actualmente, el ORNL posee la supercomputadora más veloz del mundo, denominada Jaguar, que además fue la primera en romper la barrera de los petaflops sostenidos.

No comments: