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
Implementation of a portable nested data-parallel language
Journal of Parallel and Distributed Computing - Special issue on data parallel algorithms and programming
Multipole translation theory for the three-dimensional Laplace and Helmholtz equations
SIAM Journal on Scientific Computing
Vienna-Fortran/HPF Extensions for Sparse and Irregular Problems and Their Compilation
IEEE Transactions on Parallel and Distributed Systems
Problem space promotion and its evaluation as a technique for efficient parallel computation
ICS '99 Proceedings of the 13th international conference on Supercomputing
Regions: an abstraction for expressing array computation
Proceedings of the conference on APL '99 : On track to the 21st century: On track to the 21st century
Next-generation generic programming and its application to sparse matrix computations
Proceedings of the 14th international conference on Supercomputing
A comparative study of the NAS MG benchmark across parallel languages and architectures
Proceedings of the 2000 ACM/IEEE conference on Supercomputing
A framework for sparse matrix code synthesis from high-level specifications
Proceedings of the 2000 ACM/IEEE conference on Supercomputing
PARA '96 Proceedings of the Third International Workshop on Applied Parallel Computing, Industrial Computation and Optimization
Parallel Sparse Matrix Computations in the Industrial Strength PINEAPL Library
PARA '98 Proceedings of the 4th International Workshop on Applied Parallel Computing, Large Scale Scientific and Industrial Problems
PaCT '95 Proceedings of the 3rd International Conference on Parallel Computing Technologies
Contribution to Better Handling of Irregular Problems in HPF2
Euro-Par '98 Proceedings of the 4th International Euro-Par Conference on Parallel Processing
Broadway: A Software Architecture for Scientific Computing
Proceedings of the IFIP TC2/WG2.5 Working Conference on the Architecture of Scientific Software
ZPL's WYSIWYG Performance Model
HIPS '98 Proceedings of the High-Level Parallel Programming Models and Supportive Environments
The design and implementation of a parallel array operator for the arbitrary remapping of data
Proceedings of the ninth ACM SIGPLAN symposium on Principles and practice of parallel programming
Parallel Programmability and the Chapel Language
International Journal of High Performance Computing Applications
Array-Structured object types for mathematical programming
JMLC'06 Proceedings of the 7th joint conference on Modular Programming Languages
ARC'12 Proceedings of the 8th international conference on Reconfigurable Computing: architectures, tools and applications
Hi-index | 0.00 |
This paper describes an array-based language-level approach to parallel sparse computation. Our approach is unique due to its separation of sparse index sets from arrays, both syntactically and in the implementation. This design allows users to express their computation using dense array syntax, making the code easier for readers to understand and for compilers to parallelize and optimize. This work is done within the context of Advanced ZPL, retaining its crisp syntax and source-level performance model. Our implementation uses a novel sparse storage format that supports general operations such as arbitrary iteration and slicing. We describe how our compiler automatically optimizes this data structure in to more compact forms based on the operations required by the program. We demonstrate our approach using the NAS CG and MG benchmarks, comparing our implementations with the original Fortran+MPI versions in terms of clarity and performance. We present performance results on the Cray T3E indicating that our implementation compares favorably to the hand-coded NAS versions in terms of memory requirements and often surpasses them in terms of execution speed.