OTERO Alejandro Daniel
congresos y reuniones científicas
General Parallel Finite/Spectral-Element oriented C/C++ Framework
A. D. OTERO (EXPOSITOR); J. QUINTEROS
Congreso; The Second International Conference on Parallel, Distributed, Grid and Cloud Computing for Engineering, PARENG2011; 2011
In this work, we present the design and implementation of a highly modular and flexible software framework to implement numerical models based on the finite element method (FEM) and its extension to deal with distributed problems. It improves previous implementations by the addition of parallel calculations capabilities by means of the substructure technique applied to solve problems by the FEM in clusters of computers using the MPI protocol.The framework includes interfaces to libraries so that the model is isolated from implementation details and those libraries be exchanged. The main idea behind the implemented interfaces is to abstract the model from the libraries that are being used. One class interfaces with the selected Lapack implementation while another class was designed to interface with sparse matrices libraries. These libraries provide fast and tested procedures to solve linear systems stored in sparse matrices. In the case of this parallel implementation the problem is divided into local (ie. subdominial) and global problems to be solved. The local problem is solved by means of a direct sparse solver. We analyse iterative as well as direct solvers for the global problem. As a test case, we consider the solution of a general scalar Poisson problem to conduct experiments in order to evaluate the scaling capabilities of the parallel extensions of our code, both using iterative and direct solvers for the global problem.Results are analysed and conclusions extracted with focus on future lines of development and improvements. The main conclusion regarding the direct solver is the need of implementing a parallel global solver and, even further, to work with distributed matrices. The principal conclusion considering the iterative solver are the savings in computing time achieved with respect to the direct solver and the necessity of implementing good preconditioners to reduce the number of iterations.