ACM Transactions on Mathematical Software (TOMS)
Sparse matrices in matlab: design and implementation
SIAM Journal on Matrix Analysis and Applications
Compilation techniques for sparse matrix computations
ICS '93 Proceedings of the 7th international conference on Supercomputing
Minimizing communication while preserving parallelism
ICS '96 Proceedings of the 10th international conference on Supercomputing
Sparse code generation for imperfectly nested loops with dependences
ICS '97 Proceedings of the 11th international conference on Supercomputing
A relational approach to the automatic generation of sequential sparse matrix codes
A relational approach to the automatic generation of sequential sparse matrix codes
Computer Solution of Large Sparse Positive Definite
Computer Solution of Large Sparse Positive Definite
Reshaping Access Patterns for Generating Sparse Codes
LCPC '94 Proceedings of the 7th International Workshop on Languages and Compilers for Parallel Computing
A Relational Approach to the Compilation of Sparse Matrix Programs
Euro-Par '97 Proceedings of the Third International Euro-Par Conference on Parallel Processing
Aspect-Oriented Programming of Sparse Matrix Code
ISCOPE '97 Proceedings of the Scientific Computing in Object-Oriented Parallel Environments
A Supernodal Approach to Sparse Partial Pivoting
A Supernodal Approach to Sparse Partial Pivoting
Data Centric Transformations on Non-Integer Iteration Spaces
Proceedings of the 14th International Conference on Parallel Architectures and Compilation Techniques
Sublimation: expanding data structures to enable data instance specific optimizations
LCPC'10 Proceedings of the 23rd international conference on Languages and compilers for parallel computing
Hi-index | 0.00 |
Developing computational codes that compute with sparse matrices is a difficult and error-prone process. Automatic generation of sparse code from the corresponding dense version would simplify the programmer's task, provided that a compiler-generated code is fast enough to be used instead of a hand-written code. We propose a new Sparse Intermediate Program Representation (SIPR) that separates the issue of maintaining complicated data structures from the actual matrix computations to be performed. Cost analysis of SIPR allows for the prediction of the program efficiency, and provides a solid basis for choosing efficient sparse implementations among many possible ones. The SIPR framework allows the use of techniques that are frequently used in the handwritten codes but previously were not considered for compiler-generated codes due to their complexity. We have developed tools that allow the automatic generation of efficient C++ implementations from SIPR, and describe experimental results on the performance of those implementations.