TAZ-PFC-2011-174


Estrategias de paralelización de un código de simulación hidráulica de flujos transitorios 2D en volúmenes finitos

Lacasta Soto, Asier Heradio
Burguete Tolosa, Javier (dir.)

Viñals Yúfera, Víctor (ponente)

Universidad de Zaragoza, CPS, 2011
Departamento de Informática e Ingeniería de Sistemas, Área de Arquitectura y Tecnología de Computadores

Ingeniero en Informática

Resumen: En este proyecto se plantea la optimización de SFS2D, un código científico de simulación hidráulica, secuencial y escrito en Fortran, con una gran carga computacional. SFS2D sirve para modelar situaciones muy diversas que van desde la simulación de las consecuencias de una rotura de presa al estudio de una crecida repentina del caudal de un río. SFS2D ha sido desarrollado por el Grupo de Hidráulica Computacional de la Universidad de Zaragoza y se basa en un método de resolución de flujos de superficial libre que en la actualidad sirve como soporte para desarrollar nuevos modelos numéricos acoplados. Sin embargo, tras varios años de evolución, el rendimiento de SFS2D es escaso y las simulaciones de interés se prolongan demasiado en el tiempo. Esto es un problema a la hora de obtener resultados, siendo necesaria algún tipo de optimización que haga disminuir estos tiempos lo máximo posible. Para esto y como veremos a lo largo del trabajo, se han estudiado distintas opciones de optimización, desde las proporcionadas por el propio compilador hasta el desarrollo de versiones adaptadas a diversas plataformas multiprocesador. Para ello, se han considerado los dos modelos principales de ejecución paralela en cálculos científicos: memoria compartida y paso de mensajes. La versión paralela de memoria compartida se ha codificado utilizando primitivas OpenMP y es apropiada para su ejecución en máquinas \emph{multicore}, que integran varios procesadores de alto rendimiento en un chip. La versión paralela basada en memoria distribuída se ha programado usando primitivas MPI y es apropiada para su ejecución de un número potencialmente grande de nodos de cálculo independientes pero conectados mediante una red de alto rendimiento (máquinas de memoria distribuida). En la evaluación experimental se observa que el escalado de la versión basada en paso de mensajes es muy bueno también en máquinas de memoria compartida por lo que se considera la aportación principal de este proyecto. Para caracterizar el rendimiento de nuestras soluciones, usamos como carga de trabajo tres simulaciones diferentes que cubren la casuística general de las simulaciones que se hacen a través del ámbito abarcado por SFS2D. La evaluación del rendimiento se ha realizado además en máquina real, utilizando tres clúster \footnote{Conjunto de nodos de cálculo} suficientemente distintos como para dar validez a nuestras conclusiones. El primero de ellos es un clúster conformado por equipos de características no destinado a este tipo de ejecuciones. El segundo equipo, denominado Terminus, está especializado en computación y consigue una gran densidad de cálculo mediante una organización en blades y una jerarquía de interconexión optimizada. Por último se utiliza también el nodo de la Red Española de Supercomputación en Zaragoza, Caesaraugusta. Caesaraugusta es un supercomputador destinado únicamente a cálculo científico de memoria distribuida con 512 procesadores interconectados mediante una red de baja latencia (Myrinet).


Palabra(s) clave (del autor): paralelización ; optimización ; aguas poco profundas ; mpi ; openmp ; memoria compartida ; memoria distribuida ; hidráulica computacional
Tipo de Trabajo Académico: Proyecto Fin de Carrera

Creative Commons License



El registro pertenece a las siguientes colecciones:
Trabajos académicos > Trabajos Académicos por Centro > Centro Politécnico Superior
Trabajos académicos > Proyectos fin de carrera



Volver a la búsqueda

Valore este documento:

Rate this document:
1
2
3
 
(Sin ninguna reseña)