102GFLOPS y 64GB de memoria (con un BW de 256 GB/s ) por CPU... Un nodo (de memoria compartida) es 16 veces eso. Soporta hasta 512 nodos.
Mucho más fácil de programar, muchísimo más eficiente en programas altamente vectorizables y un acceso a memoria impresionante.
Me temo que no hay parangón con ningún otro sistema de un tamaño y/o precio parecido.
Copiando y pegando... "maximum expansion stage with 512 nodes, 8,192 CPUs, and 970 TFLOPS peak performance. There is up to 4 TB/s shared memory bandwidth per node and 2 x 128 GB/s node interconnect bandwidth."
Estos sistemas están a otro nivel... y su precio estará a la altura.
Mirando las Nvidia, la C1060 por ejemplo, comparte un bus de 102Gb/s para 240 miniprocesadores (una CPU)... Los 4GB de memoria (por narices) tendrán muy pocos bancos para la cantidad de miniprocesadores que pueden querer acceder a la vez a ella... El cuello de botella con memoria será bestial (tanto por ancho como por acceso al mismo banco), y si no se programa usando las pequeñas caches de cada miniprocesador correctamente, no se le sacará apenas rendimiento... demasiado complejo.
Yo sólo le ponía un ejemplo de que existen otras cosas, que para mi gusto son más "bonitas" de trabajar con ellas.
Desde luego, no digo que las Nvidia de esas sean una tontería, es más yo tengo una 9800GT en casa para "juguetear" con ella;-)
Puse un SX-9 como ejemplo porque son los únicos procesadores vectoriales clásicos que siguen vivos.
¿Te cabe siquiera encima de la mesa un SX-9 o tratas de hacerte el listillo?
El teclado de mi portátil es más grande que un procesador + 64GB de un SX-9, y los rack de 16 procesadores creo que son los típicos 42U.
vectorizar un código es mucho más complicado que CUDA-ificarlo, que es casi como usar OpenMP
Yo hablaba de códigos fácilmente vectorizables, por ejemplo la previsión meteorológica... A mi me parece mucho más fácil vectorizar esos algoritmos "a mano" en un procesador vectorial que implementarlos en una Nvidia. En un vectorial, operaciones con matrices enormes se pueden codificar "a mano" de forma sencilla, en una Nvidia (al menos en la mía) es una puñeta... como se te ocurra usar la memoria principal y pasar de las caches para simplificar el código no tira todo lo que debería tirar (aunque corra como 100 veces más que en un Opteron)
Y no hablemos de la simplicidad del código...
Todo esto aparte, un solo procesador SX-9 tiene MENOS rendimiento pico en doble precisión que una GTX280. La GTX280 tiene un pico teórico de 116GFLOPs, de los cuales en aplicaciones reales se ha alcanzado entre 60-80GFLOPs. Un solo SX-9 alcanza 102GFLOPs pico teóricos, de los cuales vete a saber cuántos se han alcanzado en aplicaciones reales
Una Nvidia... 80/116 = ~69% Un sistema SX-6 (2001) del top500 con múltiples nodos unidos por un crossbar. 35860/40960 = ~87% Y eso que los nodos están dispersos por una habitación enorme... http://www.top500.org/system/performance/5628 [top500.org]
El roadrunner (el de tu ejemplo) tiene: 1105000/1456000 = ~76% Así que el rendimiento respecto a su potencia máxima de las Nvidia no es nada sorprendente. Su precio sí, en eso no discutimos.
Re:Cuidado con el rendimiento
(Puntos:3, Informativo)( Última bitácora: Jueves, 31 Mayo de 2007, 20:41h )
Un nodo (de memoria compartida) es 16 veces eso. Soporta hasta 512 nodos.
Mucho más fácil de programar, muchísimo más eficiente en programas altamente vectorizables y un acceso a memoria impresionante.
"maximum expansion stage with 512 nodes, 8,192 CPUs, and 970 TFLOPS peak performance. There is up to 4 TB/s shared memory bandwidth per node and 2 x 128 GB/s node interconnect bandwidth."
Estos sistemas están a otro nivel... y su precio estará a la altura.
Mirando las Nvidia, la C1060 por ejemplo, comparte un bus de 102Gb/s para 240 miniprocesadores (una CPU)... Los 4GB de memoria (por narices) tendrán muy pocos bancos para la cantidad de miniprocesadores que pueden querer acceder a la vez a ella... El cuello de botella con memoria será bestial (tanto por ancho como por acceso al mismo banco), y si no se programa usando las pequeñas caches de cada miniprocesador correctamente, no se le sacará apenas rendimiento... demasiado complejo.
Re:Cuidado con el rendimiento
(Puntos:2)( Última bitácora: Jueves, 31 Mayo de 2007, 20:41h )
Desde luego, no digo que las Nvidia de esas sean una tontería, es más yo tengo una 9800GT en casa para "juguetear" con ella
Puse un SX-9 como ejemplo porque son los únicos procesadores vectoriales clásicos que siguen vivos.
A mi me parece mucho más fácil vectorizar esos algoritmos "a mano" en un procesador vectorial que implementarlos en una Nvidia.
En un vectorial, operaciones con matrices enormes se pueden codificar "a mano" de forma sencilla, en una Nvidia (al menos en la mía) es una puñeta... como se te ocurra usar la memoria principal y pasar de las caches para simplificar el código no tira todo lo que debería tirar (aunque corra como 100 veces más que en un Opteron)
Y no hablemos de la simplicidad del código...
80/116 = ~69%
Un sistema SX-6 (2001) del top500 con múltiples nodos unidos por un crossbar.
35860/40960 = ~87% Y eso que los nodos están dispersos por una habitación enorme...
http://www.top500.org/system/performance/5628 [top500.org]
El roadrunner (el de tu ejemplo) tiene: 1105000/1456000 = ~76%
Así que el rendimiento respecto a su potencia máxima de las Nvidia no es nada sorprendente. Su precio sí, en eso no discutimos.