An object-oriented framework for the development of scalable parallel multilevel preconditioners

  • Authors:
  • Marzio Sala

  • Affiliations:
  • Sandia National Laboratories, Albequerque, NM

  • Venue:
  • ACM Transactions on Mathematical Software (TOMS)
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present the design of a high-performance object-oriented framework that enables the rapid development and usage of efficient, scalable, and portable implementations of multilevel preconditioners for distributed sparse real matrices, in both serial and (massively) parallel environments. The main feature of the proposed framework is the use of several programming paradigms for the different implementation layers, with a strong emphasis on object-oriented classes and operator overloading for the top layer, and optimized FORTRAN and C code for the layers underneath. We describe an implementation of the proposed framework that is based on the ML library, the algebraic multilevel preconditioning package of Trilinos, which supports state-of-the-art parallel smoothed aggregation methods, and can be used to define general algebraic and geometric multilevel and multigrid preconditioners and solvers. The article demonstrates that we can take advantage of object-oriented programming and operator overloading to obtain intuitive, easy-to-read, and easy-to-develop codes that are at the same time efficient and scalable. Several numerical experiments obtained on serial and parallel computers show that the overhead required by the object-oriented layer is very modest, therefore allowing developers to focus on the new algorithms they are developing and testing, rather than on implementation details.