Métodos de Lattice Boltzmann en equipos multicore
Cargando...
Archivos
Fecha
Authors
Montes, Miguel
Sacco, Carlos
Título de la revista
ISSN de la revista
Título del volumen
Editor
Departamento de Mecánica
DOI
Resumen
Este trabajo reporta el resultado de una prueba de implementación paralela de lo que se conoce como
Lattice Boltzmann Methods (LBM). Se trata de métodos relativamente nuevos que contrastan con el enfoque
tradicional de la mecánica computacional de fluidos, describiendo al fluido a nivel molecular y proponiendo
modelos para la colisión entre moléculas.
Se realizó en el marco del Intel(r) Manycore Testing Lab, una iniciativa de la empresa Intel que permite a
universidades el acceso a computadoras de memoria compartida con 32 cores. Intel realizó un llamado para
presentar proyectos, y nuestro grupo fue uno de los cinco seleccionados, junto con otro equipo de Argentina
y tres de Rusia.
El objetivo fue paralelizar código secuencial preexistente (en lenguaje Fortran), y evaluar el
comportamiento del código paralelizado con distinto número de procesadores. Para ello se trabajó con
alumnos de la carrera Ingeniería en Informática que cursaban la asignatura Programación Concurrente,
dirigidos por los autores. La paralelización se realizó utilizando OpenMP, tanto en el código original
Fortran como en versiones en lenguaje C.
El equipo dispuso de cuatro semanas de acceso al Laboratorio Manycore, consistente en tres nodos de 32
procesadores. Este tiempo permitió testear distintas optimizaciones del código, tanto en Fortran como en C,
y utilizando los compiladores GNU (gcc y gfortran) e Intel (icc e ifort). Se evaluaron la escalabilidad y la
eficiencia del código para distintos tamaños de problema, para distinta cantidad de procesadores, con
distintas estrategias de distribución del código entre procesadores, y las ventajas del uso o no de
Hyperthreading.
Como resultado pudimos obtener datos numéricos que nos permiten evaluar la utilidad de distintas
optimizaciones y la escalabilidad del código utilizando este modelo de programación, la diferencia de
rendimiento entre el código generado por los distintos compiladores, y, en general, el rendimiento de
equipos SMP con esta cantidad de procesadores. Desde el punto de vista docente, fue una experiencia
valiosa para los alumnos, que pudieron acceder a equipos aún no disponibles comercialmente, interactuar
con los mecanismos de gestión de clústeres utilizados, y experimentar de primera mano con conceptos tales
como escalabilidad, speedup y eficiencia de sus programas.
Descripción
Palabras clave
Citación
Aprobación
Revisión
Complementado por
Referenciado por
Licencia Creative Commons
Excepto donde se indique lo contrario, la licencia de este ítem se describe como Atribución-NoComercial-SinDerivadas 2.5 Argentina

