: : ABSTRACT

Interoperability of sparse linear system solvers represented as components

Masha Sosonkina

Ames Laboratory and Iowa State University, USA

masha@scl.ameslab.gov

Abstract:

Sparse matrix computations are ubiquitous in high-performance computing applications and often are their most computationally-intensive part. In particular, an efficient solution of large scale linear systems may drastically improve the overall application performance. Thus, the choice and implementation of a linear system solver are of paramount importance. It is difficult, however, to navigate through the available solver packages and to tune their performance to the problem at hand mainly because of the plethora of interfaces, each of which may require application modifications. For example, different ways of setting parameters and a variety of sparse matrix formats hinder smooth intergrations of sparse matrix computations into user applications. There exist already numerical linear algebra frameworks, such as PETSc and Trilinos, that provide versatile interfaces to linear system solvers. However, for a high-performance scientific application, it may be more desirable not to restrict itself to a particular framework but, instead, to benefit from their unique strengths by dynamically choosing a solution method from any available framework. This may be possible if sparse linear system solvers are designed as components, which provide various levels of encapsulation and enhance solver reuse. The Common Component Architecture (CCA) is a component model targeting high-performance scientific applications. The CCA specification consists of a set of abstract interfaces written in Scientific Interface Definition Language (SIDL) Featuring application-independence, SIDL enables the design of common interfaces across multiple libraries and multiple parties while CCA facilitates the assembly of HPC applications from software building blocks (components) and ensures their interoperability using SIDL.

In this talk, we remark on a few efforts to abstract the minimal common set of interfaces among solver packages, notably on the LInear system Solver Interface (LISI) project from Indiana University and on the TOPS component interfaces proposed by the Center "Towards Petascale Optimal Simulations (TOPS)'' funded by the U.S. Department of Energy. The benefits of redesigning existing sparse matrix kernels as components will be considered using an example of SPARSKIT a widely-used library of sparse matrix computations. We will show how it may be extended and integrated with modern component applications. We discuss the granularity of sparse linear solver components in the light of their matching with application usability requirements. Consequently, we distinguish three levels of interfaces, high, medium, and low, corresponding to the degree of user involvement in linear system solution process and in sparse matrix manipulations. We show when each interface design choice is applicable and how it may be used to further user scientific goals.

>> presentation .pdf <<