A high-level Fortran interface to parallel matrix algebra

  • Authors:
  • Martin Roderus;Alexei Matveev;Hans-Joachim Bungartz

  • Affiliations:
  • Technische Universität München, Munich, Germany;Technische Universität München, Munich, Germany;Technische Universität München, Munich, Germany

  • Venue:
  • Proceedings of the Second International Conference on Computational Science, Engineering and Information Technology
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Scientific software often relies on complex vector- and matrix algebra, sometimes combined with more elaborate linear algebra problems, such as systems of linear equations or eigenvalue problems. Its efficient parallel computation is well studied, and there is a variety of parallel libraries for this task available. However, the user still has to cope with many technical details, such as library-specific data distribution or complicated routine calls, which, if not carefully used, easily result in confusing, difficult to maintain code. This paper presents a Fortran 90 programming interface and its library implementation, which specifies easy-to-use distributed data objects, combined with a set of linear algebra operators. The interface allows matrix algebra to be expressed in a high-level mathematical notation, while operating internally with parallel routines. Thus, linear algebra can be expressed in a clear, comprehensible way, while low-level tasks, such as data organization and communication, are hidden from the user. We evaluate this approach with an existing code from relativistic quantum chemistry, which includes complex operations with dense- and diagonal matrices, solving the generalized eigenvalue problem and several domain specific operations. The results show that the required relativistic transformations can be implemented quickly, while producing clear, light-weight code which scales up to 81 processor cores with efficiency of about 50% for our test cases.