A key for reusable parallel linear algebra software

Abstract We propose an object-oriented design which enables very good code reuse for both sequential and parallel linear algebra applications. A linear algebra class library called LAKe is implemented using our design method. We introduce a new reuse mechanism called matrix shape which enables us to derive the implementation of both the sequential and the parallel version of the iterative methods of Linear Algebra Kernels (LAKe). We show that polymorphism is insufficient to achieve our goal and that both genericity and polymorphism are needed. We propose a new design pattern as a part of the solution. Some numerical experiments validate our approach and show that efficiency is not sacrificed.

[1]  Warren Harris Contravariance for the Rest of Us , 1990 .

[2]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[3]  Y. Saad,et al.  GMRES: a generalized minimal residual algorithm for solving nonsymmetric linear systems , 1986 .

[4]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[5]  Alexander A. Stepanov,et al.  Algorithm‐oriented generic libraries , 1994, Softw. Pract. Exp..

[6]  Gene H. Golub,et al.  Matrix computations , 1983 .

[7]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[8]  Eric Noulard,et al.  Object Oriented Design for Reusable Parallel Linear Algebra Software , 1999, Euro-Par.

[9]  Yousef Saad,et al.  Iterative methods for sparse linear systems , 2003 .

[10]  Ed Seidewitz Genericity versus inheritance reconsidered: self-reference using generics , 1994, OOPSLA 1994.

[11]  Jack Dongarra,et al.  IML++ v. 1.2 Iterative Methods Library Reference Guide | NIST , 1996 .

[12]  Todd L. Veldhuizen,et al.  Expression templates , 1996 .

[13]  Krzysztof Czarnecki,et al.  Generative Programming , 2001, ECOOP Workshops.

[14]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[15]  Danny C. Sorensen,et al.  Implicit Application of Polynomial Filters in a k-Step Arnoldi Method , 1992, SIAM J. Matrix Anal. Appl..

[16]  Frédéric Guidec,et al.  Un cadre conceptuel pour la programmation par objets des architectures parallèles distribuées : application à l'algèbre linéaire , 1995 .