Advertisement

Analysis of interprocedural side effects in a parallel programming environment

  • David Callahan
  • Ken Kennedy
Session 3: Software Environments For Parallel Machines
Part of the Lecture Notes in Computer Science book series (LNCS, volume 297)

Abstract

This paper addresses the analysis of subroutine side effects in the ParaScope programming environment, an ambitious collection of tools for developing, understanding, and compiling parallel programs. In spite of significant progress in the optimization of programs for execution on parallel and vector computers, compilers must still be very conservative when optimizing the code surrounding a call site, due to the lack of information about the code in the subroutine being invoked. This has resulted in the development of algorithms for interprocedural analysis of the side effects of a subroutine, which summarize the body of a subroutine, producing approximate information to improve optimization. This paper reviews the effectiveness of these methods in preparing programs for execution on parallel computers. It is shown that existing techniques are insufficient and a new technique, called regular section analysis, will be described.

Regular section analysis extends the lattice used in previous interprocedural analysis methods to a one that is rich enough to represent common array access patterns: elements, rows, columns and their higher dimensional analogues. Regular sections are defined, their properties are established and the modifications to existing interprocedural analysis algorithms required to handle regular sections are presented. Among these modifications are methods for dealing with language features that reshape array parameters at call sites.

In addition to improved precision of summary information, we also examine two problems crucial to effective parallelization. The first addresses the need for information about which variables are always redefined as a side-effect of a call and the second addresses the requirement that, for parallel programming, information about side effects must be qualified by information about any critical regions in which those side effects take place. These problems are solved by extensions to existing interprocedural dataflow analysis frameworks.

Keywords

Formal Parameter Data Dependence Summary Information Call Graph Induction Variable 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [ABKP86]
    R. Allen, D. Baumgartner, K. Kennedy, and A. Porterfield. Ptool: a semi-automatic parallel programming assistant. In Proceedings of the 1986 International Conference on Parallel Processing, IEEE Computer Society Press, August 1986.Google Scholar
  2. [AC72]
    F. E. Allen and J. Cocke. A catalogue of optimizing transformations. In Design and Optimization of Compilers, pages 1–30, Prentice-Hall, 1972.Google Scholar
  3. [ACK87]
    Randy Allen, David Callahan, and Ken Kennedy. Automatic decomposition of scientific programs for parallel execution. In Conference Record of the Fourteenth ACM Symposium on the Principles of Programming Languages, Munich, West Germany, January 1987.Google Scholar
  4. [AK82]
    Randy Allen and Ken Kennedy. PFC: a program to convert Fortran to parallel form. Technical Report MASC-TR 82-6, Dept. of Mathematical Sciences, Rice University, March 1982.Google Scholar
  5. [AK85]
    Randy Allen and Ken Kennedy. A parallel programming environment. IEEE Software, 2(4):22–29, July 1985.Google Scholar
  6. [All83]
    Randy Allen. Dependence Analysis for Subscripted Variables and its Application to Program Transformation. PhD thesis, Dept. of Mathematical Sciences, Rice University, April 1983.Google Scholar
  7. [AM85]
    W. F. Applebe and C. E. McDowell. Anomaly reporting — a tool for debugging and developing numerical algorithms. In First International Conference on Supercomputers, Florida, December 1985.Google Scholar
  8. [Ban78]
    J. Banning. A Method for Determining the Side Effects of Procedure Calls. PhD thesis, Stanford University, August 1978.Google Scholar
  9. [Ban86]
    Uptal Banerjee. A Direct Parallelization of Call Statements — A Review. CSRD Rpt. 576, Center for Supercomputing Research and Development, University of Illinois at Urbana-Champaign, April 1986.Google Scholar
  10. [Bar77]
    J. Barth. An interprocedural data flow analysis algorithm. In Conference Record of the Fourth ACM Symposium on the Principles of Programming Languages, Los Angeles, January 1977.Google Scholar
  11. [BC86]
    M. Burke and R. Cytron. Interprocedural dependence analysis and parallelization. In Proceedings of the SIGPLAN '86 Symposium on Compiler Construction, pages 162–175, June 1986.Google Scholar
  12. [Ben82]
    M. Ben-Ari. Principles of Concurrent Programming. Prentice-Hall, 1982.Google Scholar
  13. [CCKT86]
    D. Callahan, K. Cooper, K. Kennedy, and L. Torczon. Interprocedural constant propagation. In Proceedings of the SIGPLAN '86 Symposium on Compiler Construction, June 1986.Google Scholar
  14. [CH78]
    P. Cousot and N. Halbwachs. Automatic discovery of linear restraints among variables of a program. In Conference Record of the Fifth ACM Symposium on the Principles of Programming Languages, pages 84–96, 1978.Google Scholar
  15. [CK85]
    K. Cooper and K. Kennedy. Efficient computation of flow insensitive interprocedural summary information. In Proceedings of the SIGPLAN '84 Symposium on Compiler Construction, July 1985.Google Scholar
  16. [CKT86]
    K. Cooper, K. Kennedy, and L. Torczan. The impact of interprocedural analysis and optimization in the IRnprogramming environment. ACM Transactions on Programming Languages and Systems, 8(4):419–523, October 1986.Google Scholar
  17. [Coo83]
    Keith D. Cooper. Interprocedural Data Flow Analysis in a Programming Environment. PhD thesis, Dept. Of Computer Science, Rice University, April 1983.Google Scholar
  18. [DBMS79]
    J. J. Dongarra, J. R. Bunch, C. B. Moler, and G. W. Stewart. LINPACK User's Guide. SIAM Publications, Philadelphia, 1979.Google Scholar
  19. [FO76]
    Lloyd D. Fosdick and Leon J. Osterweil. Data flow analysis in software reliability. Computer Surveys, 8(3):305–330, September 1976.Google Scholar
  20. [HK85]
    Robert T. Hood and Ken Kennedy. A programming environment for fortan. In Proceedings of the eighteenth Hawaii International Conference on System Science, pages 625–637, Western Periodicals, North Hollywood, CA, 1985.Google Scholar
  21. [Kar76]
    M. Karr. Affine relationships among variables of a program. Acta Informatica, 6:133–151, 1976.Google Scholar
  22. [Ken80]
    Ken Kennedy. Automatic translation of Fortran programs to vector form. Technical Report 476-029-4, Dept. of Mathematical Sciences, Rice University, October 1980.Google Scholar
  23. [KU77]
    J. Kam and J. Ullman. Montone data flow analysis frameworks. Acta Informatica, 7, 1977.Google Scholar
  24. [Kuc78]
    David J. Kuck. The Structure of Computers and Computation. Volume 1, John Wiley & Sons, New York, 1978.Google Scholar
  25. [Mye81]
    E. Myers. A precise interprocedural data flow algorithm. In Conference Record of the Eigth ACM Symposium on the Principles of Programming Languages, January 1981.Google Scholar
  26. [TIF86]
    R. Triolet, F. Irigion, and P. Feautrier. Direct parallelization of call statements. In Proceedings of the SIGPLAN '86 Symposium on Compiler Construction, pages 176–185, June 1986.Google Scholar
  27. [Wol82]
    M. J. Wolfe. Optimizing Supercompilers for Supercomputers. PhD thesis, Dept. Of Computer Science, University of Illinois at Urbana-Champaign, October 1982.Google Scholar
  28. [WZ85]
    M. Wegman and K. Zadeck. Constant propagation with conditional branches. In Conference Record of the Twelfth ACM Symposium on the Principles of Programming Languages, pages 291–299, January 1985.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1988

Authors and Affiliations

  • David Callahan
    • 1
  • Ken Kennedy
    • 1
  1. 1.Department of Computer ScienceRice UniversityHouston

Personalised recommendations