Implementación de una plataforma computacional para la solución de PDE's elípticas, mediante FEM y descomposición de dominios BDDC.
Abstract
En este trabajo se desarrolla una plataforma computacional en C++-CUDA, la cual introduce una serie de estructuras de datos que simplifican el manejo de memoria en CUDA. En la plataforma también se introducen elementos de programación funcional con rendimiento nativo por medio de las capacidades de meta-programación de C++.
Haciendo uso de esta plataforma, se desarrollan métodos de elementos finitos para la solución de la ecuación de Poisson en dos dimensiones en CUDA. Además se implementa una versión del precondicionador (BDDC) para GPU, usando tanto métodos iterativos como métodos directos para la solución de los sistemas lineales. Las pruebas computacionales se realizan en una tarjeta NVIDIA Tesla V100 y una tarjeta GTX 960M. Se ha encontrado que el uso de métodos directos permite una convergencia con mayor rapidez a la solución real de la ecuación, y si se conocen las factorizaciones LU y de Cholesky, entonces los métodos directos son varios órdenes de magnitud más rápidos que los métodos iterativos. Finalmente se compara la plataforma desarrollada contra una implementación en Matlab del precondicionador BDDC, donde la plataforma desarrollada es hasta 11 veces más rápida que la implementación en Matlab. In this work we develop a computational platform written on C++-CUDA introducing a series of data structures that handle memory management, simplyfing this task on CUDA. With the help of the metaprogramming capabilities of C++, we introduce elements of functional programming with native performance to CUDA.
With this platform, we develop finite element methods to solve the Poisson equation in two-dimensional domains, and to ease this task we implement a version of the BDDC preconditioner for GPU, using both iterative and direct methods. The computational tests are performed on a NVIDIA Tesla V100 and a GTX 960M. We have found that using direct methods accelerates the convergence to the solution, and if the LU and Cholesky decompositions are known, then direct methods are several orders of magnitude faster than iterative methods. Finally, we compare the developed platform to a Matlab implementation of the BDDC preconditioner, where the developed platform is up to 11 times faster than the Matlab implementation.
Collections
- Matemática [209]