Anterior: Niños con juguetes |  Siguiente: Cocktail para jóvenes fracasados (definitivo)


Sobre las tarjetas aceleradoras (y fin)

Supercomputación

Al volver de la presentación de IBM (hablo de ella en la entrada anterior) estuvimos hablando un rato con Javier sobre arquitecturas de cálculo. Somos grandes usuarios del Mare Nostrum y nos interesa saber qué se nos viene encima con la nueva máquina del BSC. Hemos recibido varios rumores e información contradictoria: Power 7, Blue Gene/P y la última es Intel Nehalem con aceleradoras Nvidia Fermi.

El tema de las tarjetas aceleradoras en supercomputación es ya recurrente y empieza a ser cansino así que, en vez de simplemente decir que a los que hacemos turbulencia no nos hace especial ilusión, voy a demostrarlo con números.

De manera simplificada se puede decir que cualquier algoritmo se basa en mover memoria al procesador, realizar cálculos en él y devolver el resultado. Es una simplificación grosera de la arquitectura de von Neuman pero nos servirá para entender las cuentas.

Entonces el tiempo de cálculo total tc es igual al tiempo necesario para mover los datos al procesador mas el tiempo necesario para realizar los cálculos. El primero será proporcional al número de datos almacenados dividido por el ancho de banda de acceso a memoria y el segundo será igual a las operaciones necesarias dividido por el número de operaciones en coma flotante por segundo.

tc ~ N/BW + C/Flops

Para entenderlo un poco mejor los argumentos adimensionalizaremos el tiempo total con el tiempo característico de la memoria:

τc ~ 1 + (C/N)(BW/Flops)

C/N es el número de operaciones dividido por la memoria utilizada y BW/Flops la relación entre el ancho de banda de memoria y la potencia de cálculo del procesador. Históricamente BW/Flops ha estado siempre sobre el 0.1 en arquitecturas no aceleradas pero en una aceleradora alcanza valores de entre 10-3 y 10-4.

En lo que respecta al primer término depende en gran medida del algoritmo que requiera más tiempo de cálculo y siempre es una función de N. Por ejemplo, una transformada rápida de Fourier es N log N, multiplicar una matriz llena por un vector es N (cuidado porque muchos se confunden con esta operación, N no es el número de incógnitas sino la memoria almacenada; la matriz también hay que ponerla en algún sitio), resolver un sistema lineal de ecuaciones es N2... Un canal turbulento es más o menos N log N porque lo que mandan son las transformadas de Fourier. Los códigos de mecánica de fluidos están entre el N, el N log N y, en menor medida, N2. Minimizar un funcional para plegar una proteína está en N3. Entonces el término C/N es, para nuestro caso, log N. Teniendo en cuenta que la memoria de un nodo está sobre los 2 y los 8 GBi, log N está sobre 10 (siempre hablando de órdenes de magnitud).

Si nos sacamos la cuenta de (C/N)(BW/Flops) para un Blue Gene (o cualquier otro cluster Beowulf convencional) nos de algo parecido a 1, τc~ 2 y no estemos tirando hardware. Si utilizáramos aceleradoras esta cuenta nos saldría 0.01 con lo que τc ~ 1.01. Ahora pensaréis que 1.01 es menor que 2 pero esta cifra hay que multiplicarla por el N/BW que es entre 5 y 10 veces mayor en en las plataformas aceleradas. Lo único que dicen estos números es que, hagamos lo que hagamos, el tiempo característico de la memoria es el que manda y la prioridad debe ser aumentar BW. En estos casos la tarjeta se utiliza como una unidad vectorial más y quien realiza la mayor parte del trabajo es el procesador que tiene mayor BW.

Las tarjetas aceleradoras son interesantes cuando C es del orden de N2 o mayor, entonces (C/N)(BW/Flops) será siempre mucho mayor que uno, el tiempo de la memoria será despreciable y cualquier mejora en la relación (BW/Flops) será bienvenida.

Aún así, y por desgracia, no es el caso de la turbulencia y la mecánica de fludos computacional. Una cosa está clara, si hay que usar aceleradoras se usarán.

  • Tags: Ingeniería
Por guillem  |  lun 22 Feb 2010  |  Comentar...  | 

Comentarios

Estación de trabajo

One question:

Por aquí están pensando adquirir una estación de trabajo potente. Estamos sopesando la HP z800 (placa base para dos Xeon QuadCore), pero dicen que necesitarían más potencia de procesador. ¿Te suena alguna placa base para más de dos micros QuadCore (Intel o AMD)? En Englobe, ¿montáis estaciones de trabajo o sólo trabajáis con clústeres y CRAY 1 en adelante?
He estado mirando la Sun Ultra 27, pero parece que la placa sólo lleva un procesador. ¿Algún otro fabricante que no sea HP?



CRAY CX1

Evidentemente, quería decir CRAY CX1



@jgpallero

Te podemos conseguir estaciones de trabajo supermicro y estamos en trámites para empezar a vender la gama Altos de Acer como partners oficiales.

No solemos meter menos de dos Xeon Nehalem 5520 con 12-24 GBi de Ram por nodo. Esto son 6-12 GBi por procesador.

Supongo que sale cada uno por unos 3000-3500.

Os recomiendo que juntéis un poco más de dinero y empecés a comprar cosas enrackables, a la larga compensa montar un pequeño datacenter.



Workstation

Gracias por responder.
El tema es que es una máquina que va a cargo de un proyecto y hay que comprarla ya. Como te comentaba, se está sopesando la HP Z800, en parte porque forma parte del catálogo oficial del CSIC y parece bastante complicado convencer a la administración de que necesitas montar a piezas un ordenador para tunearlo con lo que tú consideres mejor. De todas formas, se está intentando, por eso te preguntaba lo de la placa base y si en Englobe trabajáis las workstation de andar por casa.



@jgpallero

Conozco esa manía que tiene la administración pública de comprar hardware a HP vía El Corte Inglés.

Luego la gente se pregunta de dónde viene el bajo rendimiento económico de la investigación en este país.

Cuidado que no os cuelen los Xeon 5504 que son una castaña, aunque HP os los vendacomo si fueran la hostia a precio de 5520, que les conozco.

Reitero mi opinión sobre los enrackables para el futuro.



La castaña pilonga

Vaya, qué cosas. Efectivamente, parece que ofrecen en X5504. El caso es que intento buscar en gllogle y no encuentro información negativa (positiva tampoco) sobre el X5504. ¿Puedes ser más explícito?, ¿o es sólo experiencia profesional?

Gracias



@jgpallero

Si buscas Intel Xeon en la wikipedia en inglés te salen los datos. Digamos que es un Nehalem para pobres, supongo que son los primeros que hicieron con un montón de cosas desactivadas.

Con el mismo consumo eléctrico tienen un 20% menos de frecuencia de reloj, un 20% menos de ancho de banda en el controlador de memoria, un 20% menos de frecuencia de funcionamiento de memoria, la mitad de caché L3 y vienen sin hyper threading.

Como sabes que en caso de hacer algo intensivo en memoria estos factores son decisivos digamos que o te los ofrecen a un octavo del precio del L5520 o te están (literalmente) engañando.

A un tío de la escuela de aeronáuticos le llamé de gilipollas p'arriba por comprarlos a HP sin preguntarme. Además se lo dije con razón. Es gilipollas porque se dejó engañar por HP a quienes le importa una mierda.