Skip to main content

Fast address sequence generation for data-parallel programs using integer lattices

  • Conference paper
  • First Online:
Languages and Compilers for Parallel Computing (LCPC 1995)

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

Abstract

In data-parallel languages such as High Performance Fortran and Fortran D, arrays are mapped to processors through a two step process involving alignment followed by distribution. A compiler that generates code for each processor has to compute the sequence of local memory addresses accessed by each processor and the sequence of sends and receives for a given processor to access non-local data. In this paper, we present a novel approach based on integer lattices. The set of elements referenced can be generated by integer linear combinations of basis vectors. Our linear algorithm determines the basis vectors as a function of the mapping. Using the basis vectors, we derive a loop nest that enumerates the addresses, which are points in the lattice generated by the basis vectors. Experimental results show that our approach is better than that of a recent linear time solution to this problem.

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. A. Ancourt, F. Coelho, F. Irigoin and R. Keryell. A linear algebra framework for static HPF code distribution. In Proc. of the 4th Workshop on Compilers for Parallel Computers, Delft, The Netherlands, December 1993.

    Google Scholar 

  2. B. Chapman, P. Mehrotra, and H. Zima. Programming in Vienna Fortran. Scientific Programming, 1(1):31–50, Fall 1992.

    Google Scholar 

  3. S. Chatterjee, J. R. Gilbert, F. J. E. Long, R. Schreiber, and S.-H. Teng. Generating local addresses and communication sets for data parallel programs. In Proc. of ACM Symposium on Principles and Practices of Parallel Programming, pages 149–158, May 1993.

    Google Scholar 

  4. G. Fox, S. Hiranandani, K. Kennedy, C. Koelbel, U. Kremer, C. Tseng, and M. Wu. Fortran D Language Specification. Technical Report CRPC-TR90079, Rice University, Dec. 1990.

    Google Scholar 

  5. P. M. Gruber and C. G. Lekkerkerker. Geometry of numbers. North-Holland Mathematical Library Volume 37, North-Holland, Amsterdam, 1987 (Second Edition).

    Google Scholar 

  6. S. K. S. Gupta, S. D. Kaushik, C.-H. Huang, and P. Sadayappan. On compiling array expressions for efficient execution on distributed-memory machines. Technical Report OSU-CISRC-94-TR19, The Ohio State University, April 1994.

    Google Scholar 

  7. High Performance Fortran Forum. High Performance Fortran language specification. Scientific Programming, 2(1–2):1–170, 1993.

    Google Scholar 

  8. S. Hiranandani, K. Kennedy, J. Mellor-Crummey, and A. Sethi. Compilation techniques for block-cyclic distributions. In Proc. ACM Intl. Conf. Supercomputing, July 1994.

    Google Scholar 

  9. K. Kennedy, N. Nedeljkovic, and A. Sethi. A linear-time algorithm for computing the memory access sequence in data-parallel programs. In Proc. of Fifth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, Santa Barbara, CA, July 1995.

    Google Scholar 

  10. C. Koelbel. Compile-time generation of communication for scientific programs. In Supercomputing '91, pages 101–110, Nov. 1991.

    Google Scholar 

  11. C. Koelbel, D. Loveman, R. Schreiber, G. Steele, and M. Zosel. High Performance Fortran Handbook. The MIT Press, 1994.

    Google Scholar 

  12. J. Ramanujam. Non-unimodular transformations of nested loops. In Proc. Supercomputing 92, pages 214–223, Nov. 1992.

    Google Scholar 

  13. J. M. Stichnoth. Efficient compilation of array statements for private memory multicomputers. Technical Report CMU-CS-93-109, Carnegie-Mellon University, Feb. 1993.

    Google Scholar 

  14. A. Thirumalai and J. Ramanujam. Code generation and optimization for array statements in HPF. Technical Report ECE-TR-94-11-02, Louisiana State University, Nov. 1994.

    Google Scholar 

  15. A. Thirumalai and J. Ramanujam. Address sequence generation for data-parallel programs using integer lattices. Technical Report ECE-TR-95-04-03, Louisiana State University, Apr. 1995.

    Google Scholar 

  16. A. Thirumalai and J. Ramanujam. An efficient compile-time approach to compute address sequences in data parallel programs. In Proc. 5th International Workshop on Compilers for Parallel Computers, Malaga, Spain, pp. 581–605, June 1995.

    Google Scholar 

  17. Michael Wolfe. High performance compilers for parallel computing. Addison-Wesley Publishing Co., 1996.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Chua-Huang Huang Ponnuswamy Sadayappan Utpal Banerjee David Gelernter Alex Nicolau David Padua

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Thirumalai, A., Ramanujam, J. (1996). Fast address sequence generation for data-parallel programs using integer lattices. In: Huang, CH., Sadayappan, P., Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1995. Lecture Notes in Computer Science, vol 1033. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0014200

Download citation

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

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-60765-6

  • Online ISBN: 978-3-540-49446-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics