Co-design at POP CoE project

BEM4I

Program's name: BEM4I
Available version(s): BEM4I (Chunksize 500) · BEM4I (One chunk per thread) · BEM4I ·
Programming language(s): C++ ·
Programming model(s): MPI · OpenMP ·
Uses following algorithm(s): Generalized minimal residual method (GRMRES) ·
Used in following discipline(s):

BEM4I is a library of parallel boundary element based solvers developed at IT4Innovations National Supercomputing Center. It supports solutions of the Laplace, Helmholtz, Lame, and wave equations. The library implements OpenMP and hybrid OpenMP/MPI parallelization. The development is focused on an efficient implementation utilizing multi- and many-core architecture. System matrices assembled within the BEM are generally dense and the library uses Adaptive Cross Approximation technique to approximate them. The resulted linear system is solved by the appropriate iterative solver based on the quality of the system matrix. For Helmholtz and wave equations, the solver is the GMRES method, for Laplace and Lame it can be the CG method.

These iterative algorithms consist of several basic computation operations on matrices and vectors. In general, all these operations are global and need synchronizations/communication of data. The key of an efficient solver is an implementation mainly of matrix-vector and vector-vector multiplication on distributed matrices and vectors.