Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Resumen— En el diseño de los procesadores mo- Element, PPE) acompañado de una serie de núcleos
dernos es cada vez más común incorporar varios que realizan la labor de unidades aceleradoras (Sy-
núcleos de procesamiento. En algunas arquitecturas
estos núcleos no son homogéneos, sino que están es- nergistic Processing Elements, SPEs), dotadas de
pecializados en la realización de funciones especı́ficas. una pequeña memoria local sobre la cual trabajan, y
Uno de los procesadores de este tipo más destacables que se comporta como una memoria caché que debe
es el Cell, creado por Sony, Toshiba e IBM, que incor-
pora en un solo chip un núcleo PowerPC común y has-
ser operada explı́citamente por el software. La pro-
ta 8 núcleos aceleradores, llamados Synergistic Proce- gramación sobre esta plataforma entraña una gran
sing Elements, que alcanzan una gran rendimiento en complejidad tanto a nivel de utilización óptima del
operaciones en punto flotante mediante procesamien-
juego de instrucciones como de gestión de las memo-
to vectorial. En este trabajo estudiaremos este pro-
cesador y su rendimiento con aplicaciones cientı́ficas. rias locales, pero al mismo tiempo permite obtener
Optimizaremos para el procesador Cell una simula- un alto rendimiento. En este trabajo hemos estudia-
ción de un sistema de aguas someras con transporte do las caracterı́sticas de este procesador, haciendo
de contaminantes utilizando un método de volúmenes
finitos. Ésta es una aplicación áltamente paraleliza- hincapié en los aspectos que lo diferencian de los
ble, al tiempo que utiliza operaciones sobre matrices procesadores de propósito general, y lo hemos pro-
y vectores de dimensión 4, con lo que se adapta a la gramado para resolver un problema cientı́fico que se
arquitectura de este procesador.
adapta muy bien a la arquitectura de este procesa-
Palabras clave— Computación de altas prestaciones,
Método de volúmenes finitos, Vectorización, Parale-
dor, como es el de la simulación de un sistema de
lismo, Arquitecturas heterogéneas aguas someras con transporte de contaminantes me-
diante un método de volúmenes finitos.
I. Introducción El método de volúmenes finitos es altamente pa-
ralelizable, puesto que presenta pocas dependencias
Para discretizar el sistema (2), descomponemos siendo kDij k∞ es la norma infinito de la matriz Dij ,
el dominio computacional en celdas o volúmenes de es decir el máximo de los autovalores de la matriz
control, Vi ⊂ R2 , i = 1, . . . , L. Se usa la siguiente Aij .
notación: dado un volumen finito Vi , Ni es el con-
junto de ı́ndices j tales que Vj es vecino de Vi , Eij es IV. Implementación
la arista común de dos celdas vecinas Vi y Vj , y |Eij | La adaptación del programa original [2] optimiza-
su longitud, ηij = (ηij,x , ηij,y ) es el vector unitario do para procesadores Intel se ha realizado siguiendo
normal al la arista Eij y que apunta hacia la celda una serie de etapas diferenciadas: análisis del algo-
Vj . ritmo, vectorización de las operaciones, diseño de la
La discretización del sistema (2) se lleva a cabo distribución de datos entre las SPUs y optimización.
mediante un esquema de volúmenes finitos [8][9]. Si
W (x, t) es la solución exacta denotaremos por Wi n A. Análisis del algoritmo
una aproximación del promedio de la solución en el La implementación del método de volúmenes fini-
volumen Vi en tn , tos con la que empezamos a trabajar sigue el diagra-
1
Z
ma de flujo de la figura 2. En la etapa de descom-
Wi n ' W (x, tn )dx. (3)
|Vi | Vi posición del dominio {1} se divide el conjunto total
de volúmenes en subconjuntos disjuntos, que se dis-
donde |Vi | es el área de la celda y tn = tn−1 +∆t es tribuyen entre los diferentes procesos que realizarán
el instante de tiempo, siendo ∆t el paso de tiempo. el cálculo en paralelo. Posteriormente, un bucle itera
Conocida la aproximación en el tiempo tn , Win , en tiempo durante el periodo que se quiere simular.
para avanzar en tiempo, se considera una familia de Para cada paso de tiempo se realizan tres procesos:
Inicio
log[ Tiempo(segundos) ]
4 2 SPUs
4 4 SPUs
Paso 1 10
6 SPUs
1 2 3 4 5 6
1 1 2 3 4 3
2 3 10
3 4
4 2
10
Paso 2
1 2 3 4 5 6 1
4 5 6
1 10
1
2
2
3 0
3 10
4 9000 36000 144000 576000 2304000
Paso 3 Número de volúmenes
1 2 3 4 5 6
4 5 6
1
3
2
4
Fig. 5. Tiempos de ejecución
3
4
Paso 4
20
576000 70014.18
15 2304000 657686.36
10 TABLA II
Aceleración de la versión con multibuffering sobre la
5
versión sin multibuffering
0 XX
1 2 4 6 XXX SPUs
Número de SPUs X 1 2 4 6
Volúmenes XXXX
9000 1,12 1,16 1,19 1,23
Fig. 6. Aceleraciones usando 6 SPUs frente al Xeon 36000 1,15 1,14 1,21 1,14
144000 1,18 1,15 1,12 1,10
576000 1,18 1,16 1,07 1,05
mos un programa muy escalable. Nótese que la ver- 2304000 1,20 1,18 1,11 1,05
sión del programa original adaptada a la PPU no se
ha podido ejecutar para la malla de 2304000 volúme-
nes, pues los 256Mb de memoria de la PlayStation3
no son suficientes para almacenar la información tal Agradecimientos
como estaba estructurada originalmente. Este trabajo ha sido financiado por la Xunta de
Los tiempos de ejecución en un Xeon E5440 a Galicia bajo el proyecto INCITE08PXIB105161PR
2.83GHz están reflejados en la tabla I, mientras que y por el Ministerio de Ciencia e Innovación con
la aceleración obtenida al usar el procesador Cell se fondos FEDER de la Unión Europea (proyec-
muestran en la figura 6, donde se puede observar que to TIN2007-67537-C03-02 y proyectos MTM2006-
nuestra implementación mejora sus aceleraciones a 08075, MTM2007-67596-C02-01). Agradecemos a la
medida que se emplean más volúmenes. Ası́, se lle- Red Gallega de Computación de Altas Prestaciones
ga a una aceleración de 32x para 2304000 volúmenes (Red G-HPC) por promover colaboraciones interdis-
utilizando las 6 SPUs de la PlayStation3. ciplinares entre grupos de la red, ası́ como los comen-
Estos datos se refieren a la versión totalmente op- tarios y sugerencias del profesor Ramón Doallo.
timizada, que hace uso de multibuffering. El impacto
de esta técnica en el programa es significativo, como Referencias
se puede ver en la tabla II, dónde se aprecia que se [1] IBM, Sony, and Toshiba, Cell Broadband Engine Archi-
tecture, IBM, 2006.
obtiene una aceleración de 1,15 de media respecto a [2] M.J. Castro, J.A. Garcı́a-Rodrı́guez, J.M. González-
la implementación sin multibuffering, si bien este va- Vida, and C. Parés, “Solving shallow-water systems in
lor varı́a con el tamaño del conjunto de trabajo y el 2D domains using Finite Volume methods and multime-
dia SSE instructions,” Journal of Computational and
número de SPUs. Applied Mathematics, vol. 221, pp. 16–32, 2008.
[3] J. Lobeiras, M. Arenaz, M. Amor, B. B. Fraguela, J. A.
VI. Conclusiones Garcı́a, and M.J. Castro, “Optimización de simulación
de aguas superficiales con contaminante en una GPU me-
En este trabajo se ha partido de una implementa- diante Brook+,” XX Jornadas de Paralelismo, 2009.
[4] IBM, PowerPC Architecture, Book I, IBM, Enero 2005.
ción del método de volúmenes finitos para procesado- [5] IBM, PowerPC Architecture, Book II, IBM, Enero 2005.
res x86 para conseguir una adaptación al procesador [6] IBM, PowerPC Microprocessor Family: Vector/SIMD
Cell que consigue un rendimiento considerablemente Multimedia Extension Technology Programming Envi-
ronments Manual, IBM, 2006.
superior. Ésto se ha conseguido mediante un estudio [7] IBM, Sony, and Toshiba, C/C++ Language Extensions
detallado de la arquitectura, de forma que hemos lo- for Cell Broadband Engine Architecture, IBM, 2006.
grado unos tiempos hasta 32 veces mejores. [8] M.J. Castro, J.A. Garcı́a-Rodrı́guez, J.M. González-
Vida, and C. Parés, “A parallel 2D finite volume scheme
En cuanto a lı́neas de trabajo futuro, hay varios for solving systems of balance laws with nonconserva-
puntos que se pueden considerar, tales como consi- tive products: Application to shallow flows,” Computer
methods in applied mechanics and engineering, pp. 2788–
derar la paralelización entre varios procesadores Cell 2815, Julio 2005.
(bien sobre memoria compartida o distribuida), la [9] M.J. Castro, E.D. Fernández-Nieto, A.M. Ferreiro, J.A.
implementación de versiones de la aplicación que Garcı́a-Rodrı́guez, and C. Parés, “High order extensions
of Roe schemes for two dimensional nonconservative hy-
operen con valores en punto flotante de doble pre- perbolic systems,” Comput. Journal of Sci. Comput.,
cisión (lo cual es necesario para problemas de una vol. 39, pp. 67–114, 2009.
mayor dimensionalidad) o el desarrollo de una im- [10] M.J. Castro and C. Parés, “On the well balance property
of Roe’s method for nonconservative hyperbolic systems.
plementación genérica que soporte mallas no estruc- application to shallow-water systems,” ESAIM:M2AN,
turadas de forma eficiente. vol. 38, pp. 821–852, 2004.