Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content

Reshaping access patterns for generating sparse codes

  • And Now, for Something Completely Different
  • Conference paper
  • First Online:
Languages and Compilers for Parallel Computing (LCPC 1994)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 892))

Abstract

In a new approach to the development of sparse codes, the programmer defines a particular algorithm on dense matrices which are actually sparse. The sparsity of the matrices as indicated by the programmer is only dealt with at compile-time. The compiler selects appropriate compact data structure and automatically converts the algorithm into code that takes advantage of the sparsity of the matrices. To achieve efficient sparse codes, the compiler must be able to reshape some access patterns before a data structure is selected. In this paper, we discuss a reshaping method that is based on unimodular transformations.

Support was provided by the Foundation for Computer Science (SION) of the Netherlands Organization for the Advancement of Pure Research (NWO) and the EC Esprit Agency DG XIII under Grant No. APPARC 6634 BRA III.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Randy Allen and Ken Kennedy. Automatic translation of fortran programs to vector form. ACM Transactions on Programming Languages and Systems, Volume 9:491–542, 1987.

    Google Scholar 

  2. Corinne Ancourt and Francois Irigoin. Scanning polyhedra with do loops. In Proceedings of Third ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 39–50, 1989.

    Google Scholar 

  3. U. Banerjee. Dependence Analysis for Supercomputing. Kluwer Academic Publishers, Boston, 1988.

    Google Scholar 

  4. U. Banerjee. Unimodular transformations of double loops. In Proceedings of Third Workshop on Languages and Compilers for Parallel Computing. 1990.

    Google Scholar 

  5. U. Banerjee. Loop Transformations for Restructuring Compilers: The Foundations. Kluwer Academic Publishers. Boston, 1993.

    Google Scholar 

  6. Aart J.C. Bik and Harry A.G. Wijshoff. Advanced compiler optimizations for sparse computations. In Proceedings of Supercomputing 93, pages 430–439, 1993.

    Google Scholar 

  7. Aart J.C. Bik and Harry A.G. Wijshoff. Compilation techniques for sparse matrix computations. In Proceedings of the International Conference on Supercomputing, pages 416–424, 1993.

    Google Scholar 

  8. Aart J.C. Bik and Harry A.G. Wijshoff. MT1: A prototype restructuring compiler. Technical Report no. 93-32, Dept. of Computer Science, Leiden University, 1993.

    Google Scholar 

  9. Aart J.C. Bik and Harry A.G. Wijshoff. On automatic data structure selection and code generation for sparse computations. In Proceedings of the Sixth International Workshop on Languages and Compilers for Parallel Computing, pages 57–75, 1993. Lecture Notes in Computer Science, No. 768.

    Google Scholar 

  10. Aart J.C. Bik and Harry A.G. Wijshoff. Nonzero structure analysis. In Proceedings of the International Conference on Supercomputing, 1994. To appear.

    Google Scholar 

  11. Aart J.C. Bik and Harry A.G. Wijshoff. On a completion method for unimodular matrices. Technical Report no. 94-14, Dept. of Computer Science, Leiden University, 1994.

    Google Scholar 

  12. Aart J.C. Bik and Harry A.G. Wijshoff. On strategies for generating sparse codes. Technical Report In Progress, Dept. of Computer Science, Leiden University, 1994.

    Google Scholar 

  13. George B. Dantzig and B. Curtis Eaves. Fourier-Motzkin elimination and its dual. Journal of Combinatorial Theory, Volume 14:288–297, 1973.

    Google Scholar 

  14. David S. Dodson, Roger G. Grimes, and John G. Lewis. Algorithm 692: Model implementation and test package for the sparse linear algebra subprograms. ACM Transactions on Mathematical Software, Volume 17:264–272, 1991.

    Google Scholar 

  15. Michael L. Dowling. Optimal code parallelization using unimodular transformations. Parallel Computing, Volume 16:157–171, 1990.

    Google Scholar 

  16. I.S. Duff, A.M. Erisman, and J.K. Reid. Direct Methods for Sparse Matrices. Oxford Science Publications, 1990.

    Google Scholar 

  17. I.S. Duff, Roger G. Grimes, and John G. Lewis. Sparse matrix test problems. ACM Transactions on Mathematical Software, Volume 15:1–14, 1989.

    Google Scholar 

  18. Fred G. Gustavson. Two fast algorithms for sparse matrices: Multiplication and permuted transposition. ACM Transactions on Mathematical Software, Volume 4:250–269, 1978.

    Google Scholar 

  19. Wei Li and Keshav Pingali. A singular loop transformation framework based on nonsingular matrices. In Proceedings of the Fifth Workshop on Languages and Compilers for Parallel Computing, 1992.

    Google Scholar 

  20. John Michael McNamee. Algorithm 408: A sparse matrix package. Communications of the ACM, pages 265–273, 1971.

    Google Scholar 

  21. Morris Newman. Integral Matrices. Academic Press, New York, 1972. Pure and Applied Mathematics, Volume 45.

    Google Scholar 

  22. David A. Padua and Michael J. Wolfe. Advanced compiler optimizations for supercomputers. Communications of the ACM, pages 1184–1201, 1986.

    Google Scholar 

  23. Sergio Pissanetsky. Sparse Matrix Technology. Academic Press, London, 1984.

    Google Scholar 

  24. C.D. Polychronoupolos. Parallel Programming and Compilers. Kluwer Academic Publishers, Boston, 1988.

    Google Scholar 

  25. Michael E. Wolf and Monica S. Lam. A data locality optimizing algorithm. In Proceedings ACM SIGPLAN 91 Conference on Programming Languages Design and Implementation, pages 30–44, 1991.

    Google Scholar 

  26. Michael E. Wolf and Monica S. Lam. A loop transformation theory and an algorithm to maximize parallelism. IEEE Transactions on Parallel and Distributed Algorithms, pages 452–471, 1991.

    Google Scholar 

  27. Michael J. Wolfe. Loop Skewing: The wavefront method revisited. International Journal of Parallel Programming, Volume 15:279–293, 1986.

    Google Scholar 

  28. Michael J. Wolfe. Optimizing Supercompilers for Supercomputers. Pitman, London, 1989.

    Google Scholar 

  29. H. Zima. Supercompilers for Parallel and Vector Computers. ACM Press, New York, 1990.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Keshav Pingali Utpal Banerjee David Gelernter Alex Nicolau David Padua

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Bik, A.J.C., Knijnenburg, P.M.W., Wijshoff, H.A.G. (1995). Reshaping access patterns for generating sparse codes. In: Pingali, K., Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1994. Lecture Notes in Computer Science, vol 892. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0025893

Download citation

  • DOI: https://doi.org/10.1007/BFb0025893

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-58868-9

  • Online ISBN: 978-3-540-49134-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics