Skip to main content

A unified data-flow framework for optimizing communication

  • How to Communicate Better
  • Conference paper
  • First Online:

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

Abstract

This paper presents a framework, based on global array data flow analysis, to reduce communication costs in a program being compiled for a distributed memory machine. This framework applies techniques for partial redundancy elimination to available section descriptors, a novel representation of communication involving array sections. With a single framework, we are able to capture numerous optimizations like (i) vectorizing communication, (ii) eliminating communication that is redundant on any control flow path, (iii) reducing the amount of data being communicated, (iv) reducing the number of processors to which data must be communicated, and (v) moving communication earlier to hide latency, and to subsume previous communication. Further, the explicit representation of availability of data in our framework allows processors other than the owners also to send values needed by other processors, leading to additional opportunities for optimizing communication. Another contribution of this paper is to show that the bidirectional problem of eliminating partial redundancies can be decomposed into simpler unidirectional problems, in the context of communication as well.

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. A. V. Aho, R. Sethi, and J. D. Ullman. Compilers: principles, techniques, and tools. Addison-Wesley, 1986.

    Google Scholar 

  2. F. E. Allen and J. Cocke. A program data flow analysis procedure. Communications of the ACM, 19(3):137–147, March 1976.

    Google Scholar 

  3. S. P. Amarasinghe and M. S. Lam. Communication optimization and code generation for distributed memory machines. In Proc. ACM SIGPLAN '93 Conference on Programming Language Design and Implementation, Albuquerque, New Mexico, June 1993.

    Google Scholar 

  4. M. Burke. An interval-based approach to exhaustive and incremental interprocedural data-flow analysis. ACM Transactions on Programming Languages and Systems, 12(3):341–395, July 1990.

    Google Scholar 

  5. D. M. Dhamdhere, B. K. Rosen, and F. K. Zadeck. How to analyze large programs efficiently and informatively. In Proc. ACM SIGPLAN '92 Conference on Programming Language Design and Implementation, San Francisco, CA, June 1992.

    Google Scholar 

  6. High Performance Fortran Forum. High Performance Fortran language specification, version 1.0. Technical Report CRPC-TR92225, Rice University, May 1993.

    Google Scholar 

  7. C. Gong, R. Gupta, and R. Melhem. Compilation techniques for optimizing communication in distributed-memory systems. In Proc. 1993 International Conference on Parallel Processing, St. Charles, IL, August 1993.

    Google Scholar 

  8. E. Granston and A. Veidenbaum. Detecting redundant accesses to array data. In Proc. Supercomputing '91, pages 854–965, 1991.

    Google Scholar 

  9. T. Gross and P. Steenkiste. Structured dataflow analysis for arrays and its use in an optimizing compiler. Software — Practice and Experience, 20(2):133–155, February 1990.

    Google Scholar 

  10. M. Gupta and P. Banerjee. A methodology for high-level synthesis of communication on multicomputers. In Proc. 6th ACM International Conference on Supercomputing, Washington D.C., July 1992.

    Google Scholar 

  11. M. Gupta, S. Midkiff, E. Schonberg, P. Sweeney, K.Y. Wang, and M. Burke. Ptran II: A compiler for High Performance Fortran. In Proc. 4th Workshop on Compilers for Parallel Computers, Delft, Netherlands, December 1993.

    Google Scholar 

  12. M. Gupta and E. Schonberg. A framework for exploiting data availability to optimize communication. In Proc. 6th Workshop on Languages and Compilers for Parallel Computing, Portland, OR, August 1993.

    Google Scholar 

  13. P. Havlak and K. Kennedy. An implementation of interprocedural bounded regular section analysis. IEEE Transactions on Parallel and Distributed Systems, 2(3): 350–360, July 1991.

    Google Scholar 

  14. S. Hiranandani, K. Kennedy, and C. Tseng. Compiling Fortran D for MIMD distributed-memory machines. Communications of the ACM, 35(8):66–80, August 1992.

    Google Scholar 

  15. C. Koelbel and P. Mehrotra. Compiling global name-space parallel loops for distributed execution. IEEE Transactions on Parallel and Distributed Systems, 2(4):440–451, October 1991.

    Google Scholar 

  16. J. Li and M. Chen. Compiling communication-efficient programs for massively parallel machines. IEEE Transactions on Parallel and Distributed Systems, 2(3): 361–376, July 1991.

    Google Scholar 

  17. E. Morel and C. Renvoise. Global optimization by suppression of partial redundancies. Communications of the ACM, 22(2):96–103, February 1979.

    Google Scholar 

  18. A. Rogers and K. Pingali. Process decomposition through locality of reference. In Proc. SIGPLAN '89 Conference on Programming Language Design and Implementation, pages 69–80, June 1989.

    Google Scholar 

  19. C. Rosene. Incremental Dependence Analysis. PhD thesis, Rice University, March 1990.

    Google Scholar 

  20. E. Su, D. J. Palermo, and P. Banerjee. Automating parallelization of regular computations for distributed memory multicomputers in the PARADIGM compiler. In Proc. 1993 International Conference on Parallel Processing, St. Charles, IL, August 1993.

    Google Scholar 

  21. R. E. Tarjan. Testing flow graph reducibility. Journal of Computer and System Sciences, 9(3):355–365, December 1974.

    Google Scholar 

  22. R. v. Hanxleden and K. Kennedy. A code placement framework and its application to communication generation. Technical Report CRPC-TR93337, Rice University, October 1993.

    Google Scholar 

  23. R. v. Hanxleden, K. Kennedy, C. Koelbel, R. Das, and J. Saltz. Compiler analysis for irregular problems in Fortran D. In Proc. 5th Workshop on Languages and Compilers for Parallel Computing, New Haven, CT, August 1992.

    Google Scholar 

  24. H. Zima, H. Bast, and M. Gerndt. SUPERB: A tool for semi-automatic MIMD/SIMD parallelization. Parallel Computing, 6:1–18, 1988.

    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

Gupta, M., Schonberg, E., Srinivasan, H. (1995). A unified data-flow framework for optimizing communication. 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/BFb0025884

Download citation

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

  • 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