Efficient resolution of sparse indirections in data-parallel compilers

This paper describes new compiler and run-time techniques to handle array accesses involving several levels of indirection such as those arising in sparse and irregular problems. The lack of information at compile-time in such problems has typically required the insertion of expensive runtime support. We propose new data distributions which can be used with standard sparse matrix representations to achieve much more efficient resolution of indirection at runtime. Unlike previous methods, our techniques require only a single communication phase to access non-local data, even in the presence of multiple levels of indirection. Likewise, the methods presented here are novel in that they allow the compiler to use the semantic relations of the array elements involved in the indirect accesses to perform a number of optimization.

[1]  Joel H. Saltz,et al.  Principles of runtime support for parallel processors , 1988, ICS '88.

[2]  Alexandru Nicolau,et al.  Advances in languages and compilers for parallel processing , 1991 .

[3]  Shahid H. Bokhari,et al.  A Partitioning Strategy for Nonuniform Problems on Multiprocessors , 1987, IEEE Transactions on Computers.

[4]  Barbara M. Chapman,et al.  Vienna-Fortran/HPF Extensions for Sparse and Irregular Problems and Their Compilation , 1997, IEEE Trans. Parallel Distributed Syst..

[5]  Joel H. Saltz,et al.  A manual for the CHAOS runtime library , 1995 .

[6]  Ken Kennedy,et al.  Fortran D Language Specification , 1990 .

[7]  Peter Brezany,et al.  Vienna Fortran - A Language Specification. Version 1.1 , 1992 .

[8]  Piyush Mehrotra,et al.  Programming distributed memory architectures using Kali , 1990 .

[9]  Harry Berryman,et al.  Distributed Memory Compiler Design for Sparse Problems , 1995, IEEE Trans. Computers.

[10]  Emilio L. Zapata,et al.  Data Distributions for Sparse Matrix Vector Multiplication , 1995, Parallel Comput..

[11]  Z. Zlatev Computational Methods for General Sparse Matrices , 1991 .

[12]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[13]  Ken Kennedy,et al.  Index Array Flattening Through Program Transformation , 1995, SC.

[14]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[15]  Richard Barrett,et al.  Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods , 1994, Other Titles in Applied Mathematics.

[16]  Barbara M. Chapman,et al.  New data-parallel language features for sparse matrix computations , 1995, Proceedings of 9th International Parallel Processing Symposium.

[17]  Rafael Asenjo,et al.  Sparse Block and Cyclic Data Distributions for Matrix Computations , 1995 .