Skip to main content
Log in

Program parallelization with interprocedural analysis

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

Abstract

In this paper, we review several important issues in interprocedural analysis for parallel computing: call effects, variable aliasing, and execution context. We show the use of traditional summary data flow information in program transformation for parallel computing. We examine three different methods for interprocedural data dependence analysis: (1) linearization; (2) global regions; and (3) atom images. We observe that although useful in some cases, linearization should be avoided when possible, because it often results in less precise data dependence analysis. Global region methods also suffer loss of exact information of subscript coefficients which is required by some commonly used data dependence test algorithms. As a result, an expensive data dependence test must be used. The atom images method is able to overcome this difficulty and is more efficient. Detailed discussions are provided to justify our observation. We also address the issue of alias identification and the propagation of execution context. The problems in array alias identification and a few possible solutions are discussed.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  • Aho, A. V., Hopcroft, J. E., and Ullman, J. D. 1974.The Design and Analysis of Computer Algorithms. Addison-Wesley, Reading, Mass.

    Google Scholar 

  • Allen, J. R., and Kennedy, J. 1984.Automatic Translation of Fortran Programs to Vector Form. Dept. of Computer Science, Rice University, Houston, Texas, Rice Comp TR84 - 9.

    Google Scholar 

  • Banerjee, U. 1976.Data Dependence in Ordinary Programs. Department of Computer Science., University of Illinois at Urbana-Champaign, Rpt. No. 76 - 837.

    Google Scholar 

  • Banerjee, U. 1979.Speedup of Ordinary Programs. Ph.D Thesis, Department of Computer Sciences, University of Illinois at Urbana-Champaign, Rpt. No. UIUCDCS-R-79–989.

    Google Scholar 

  • Banning, J. 1978.A Method for Determining the Side Effects of a Procedure Call's. Ph.D. Dissertation, Stanford University, Palo Alto, Calif.

    Google Scholar 

  • Barth, J. 1978. A practical interprocedural data flow analysis algorithm.CACM, 21(9): 724–736.

    Google Scholar 

  • Burke, M., and Cytron, R. 1986. Interprocedural dependence analysis and parallelization. In Conference Proceedings—The ACM SIGPLAN'86 Symposium on Compiler Construction. ACM SIGPLAN Notices, 21(7): 162–175.

    Google Scholar 

  • Callahan, D., Cooper, K., Kennedy, K., and Torczan, L. 1986. Interprocedural constant propagation.Proceedings of the ACM SIGPLAN '86 Symp. on Compiler Construction, SIGPLAN Notices, 21(6): 152–161.

    Google Scholar 

  • Cousot, P., and Halbwacks, N. 1978. Automatic discovery of linear restraints among variables of a program.Conf. Record of the 5-th Annual ACM Symp. on Principle of Program Languages, pp.84–96.

  • Cooper, K. D., and Kennedy, K. 1984. Efficient computation of flow insensitive interprocedural summary information.Proceedings of the ACM SIGPLAN '84 Symp. on Compiler Construction, SIGPLAN Notices, 19(6): 247–258.

    Google Scholar 

  • Cooper, K. D. 1985. Analyzing aliases of reference formal parameters.Conf. Record of the 12th Annual ACM Symp. on Principle of Program Languages, pp.281–290.

  • Finkbeiner II, D. T. 1978.Introduction to Matrices And Linear Transformations, 3rd ed. Freeman, San Francisco.

    Google Scholar 

  • Harrison, W. H. 1977. Compiler analysis of the value ranges for variables.IEEE Trans. Software Engineering, SE-3(3): 243–250.

    Google Scholar 

  • Hecht, M. S. 1977.Flow Analysis of Computer Programs. North-Holland, Amsterdam.

    Google Scholar 

  • Huson, C. A. 1982.An In-Line Subroutine Expander for Parafrase. M.S. Thesis, Univ. of Illinois at Urbana-Champaign, Report No. UIUCDCS-R-82–1118.

    Google Scholar 

  • Kildall, G. 1973. A unified approach to program optimization.Conference Record of First ACM Symposium on Principles of Programming Languages, pp. 194–206.

  • Kuck, D. 1981. Automatic program restructuring for high-speed computations. In Proceedings of CONPAR 81, Conf. on Analyzing Problem-Classes and Programming for Parallel Computing, W. Handler, ed. (Nurnberg, F. R. Germany, June), Springer-Verlag, Berlin.

    Google Scholar 

  • Kuck, D., Kuhn, R., Padua, D., Leasure, B., and Wolfe, M. 1981. Dependence graphs and compiler organizations.Proceedings of the 8th ACM Symp. on Principles of Programming Languages (POPL), (Williamsburg, Va., Jan.),pp.207–218.

  • Kuhn, R. 1980.Optimization and Interconnection Complexity for: Parallel Processors, Single-Stage Networks, And Decision Trees. Ph.D. Thesis, Department of Computer Science, University of Illinois at Urbana-Champaign, Rpt. No. UIUCDCS-R - 80 -1009.

    Google Scholar 

  • Li, Z., and Yew, P. 1988a.Interprocedural Analysis and Program Restructuring for Parallel Programs. CSRD Report No. 720, University of Illinois at Urbana-Champaign.

    Google Scholar 

  • Li, Z., and Yew, P. 1988b. Interprocedural analysis for parallel computing. To appear in Proceedings of 1988 International Conference on Parallel Processing.

  • Myers, E. 1980.A Precise And Efficient Algorithm for Determining Existential Summary Data Flow Information. Tech. Rpt. CU-CS-175–80, University of Colorado, Boulder.

    Google Scholar 

  • Myers, E. 1981. A precise inter-procedural data flow algorithm.Conf. Record of the 8th Annual ACM Symp. on Principle of Program Languages, pp.219–230.

  • Padua, D., Kuck, D., and Lawrie, D. 1980. High-speed multiprocessors and compilation techniques.IEEE Trans. Computers, C-29(9): 763–776.

    Google Scholar 

  • Parafrase Analyzer Document. 1985. Center for Supercomputing Research and Development, University of Illinois at Urbana-Champaign.

  • Reif, J. H., and Lewis, H. R. 1977. Symbolic evaluation and the global value graph.Conference Record of Fourth ACM Symposium on Principle of Program Languages, pp. 104–118.

  • Shostak, R. 1981. Deciding linear inequalities by computing loop residues.JACM, 28(4): 769–779.

    Google Scholar 

  • Triolet, R. 1984.Contribution a la Parallelization Automatique de Programmes Fortran Comportant des Appels de Procedure. Ph.D. Thesis, Institut de Programmation, Universite Pierre et Marie Curie (Paris VI), Paris, France.

    Google Scholar 

  • Triolet, R. 1985.Interprocedural Analysis for Program Restructuring with Parafrase. University of Illinois at Urbana-Champaign, CARD Rpt. No. 538.

    Google Scholar 

  • Triolet, R., Irigoin, F., Feautrier, P. 1986. Direct parallelization of CALL statements.Proceedings of the ACM SIGPLAN '86 Symp. on Compiler Construction, SIGPLAN Notices, 21(6): 176–185.

    Google Scholar 

  • Wegman, M., and Zadeck, F. 1985. Constant propagation with conditional branches.Conf. Record of the 12th Annual ACM Symp. on Principle of Program Languages, pp.291–299.

  • Wolfe, M., and Banerjee, U. 1986. Data dependence for parallelism detection.

  • Wolfe, M. 1978.Techniques for Improving the Inherent Parallelism in Programs. M.S. Thesis, University of Illinois at Urbana-Champaign, Rpt No. UIUCDCS-R-78–929.

    Google Scholar 

  • Wolfe, M. 1982.Optimizing SuperCompilers for Supercomputers. Ph.D. thesis, University of Illinois at Urbana-Champaign, DCS Report No. UIUCDCS-R-82–1105.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

This work was supported in part by the National Science Foundation under Grant US NSF MIP-8410110 and the US Department of Energy under Grant. US DOE DE-FG02-85ER25001, and by donations from the IBM Corporation and the CDC Corporation.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Li, Z., Yew, PC. Program parallelization with interprocedural analysis. J Supercomput 2, 225–244 (1988). https://doi.org/10.1007/BF00128178

Download citation

  • Issue Date:

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

Keywords

Navigation