: :
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 <<
|