Center for Petascale Computing  
A collaboration led by Laxmikant Kalé (Computer Science) and Duane Johnson (Materials Science and Engineering) on a research theme within IACAT

Optimizing Libraries Needed by Scientific Applications

To meet the great demand for performance portability, we propose a generator of parallel adaptive libraries and applications which enable codes to run efficiently on modern parallel computers that range from multicore architectures to the forthcoming petascale computing platforms. The tool's main framework will be built to make it easy to integrate adaptive libraries in general. Furthermore, a complete adaptive system will be delivered through this project by building an adaptive sparse linear system solvers.

Sparse linear system solvers are selected for this project because many science and engineering applications give rise to large sparse systems of linear equations that need to be solved efficiently on a variety of parallel architectures. A natural approach for the adaptation is a run-time selection from a family of algorithms. The reason is that, there are numerous algorithms and implementations of parallel sparse systems solvers and it is not immediately clear, not even to application experts, which performs best on a given parallel architecture and for a given input data set. It should be emphasized that the optimal selection of parallel routines to solve a linear systems often depends on features such as system size or degree of sparsity that are not inmediately obvious. An important justification of the proposed project is that the design of parallel adaptive sparse solver generators presents new challenges. Two issues characterize this difficulty: (i) adaptation for sparse solvers will be based on the composition of complete, usually complex algorithms instead of focusing just on kernels, and (ii) in sparse system solvers, the characteristics of the input data influence performance in ways that are difficult to anticipate for each particular target machine. The envisioned tool will have three key components: 1. An extensible library of parallel routines from which the solvers will be composed. 2. A library tuner which tunes the parallel routines offline. 3. A high-level programming syntax that allows the developer to specify the sparse linear system whose matrices and vectors are represented by self-explanatory symbols. Our programming syntax will specify in a uniform manner what is to be done in the off-line and run-time phases.
 

Investigator:

Optimizing Libraries Needed by Scientific Applications Information