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.
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.
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.
Banerjee, U. 1976.Data Dependence in Ordinary Programs. Department of Computer Science., University of Illinois at Urbana-Champaign, Rpt. No. 76 - 837.
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.
Banning, J. 1978.A Method for Determining the Side Effects of a Procedure Call's. Ph.D. Dissertation, Stanford University, Palo Alto, Calif.
Barth, J. 1978. A practical interprocedural data flow analysis algorithm.CACM, 21(9): 724–736.
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.
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.
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.
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.
Harrison, W. H. 1977. Compiler analysis of the value ranges for variables.IEEE Trans. Software Engineering, SE-3(3): 243–250.
Hecht, M. S. 1977.Flow Analysis of Computer Programs. North-Holland, Amsterdam.
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.
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.
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.
Li, Z., and Yew, P. 1988a.Interprocedural Analysis and Program Restructuring for Parallel Programs. CSRD Report No. 720, University of Illinois at Urbana-Champaign.
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.
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.
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.
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.
Triolet, R. 1985.Interprocedural Analysis for Program Restructuring with Parafrase. University of Illinois at Urbana-Champaign, CARD Rpt. No. 538.
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.
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.
Wolfe, M. 1982.Optimizing SuperCompilers for Supercomputers. Ph.D. thesis, University of Illinois at Urbana-Champaign, DCS Report No. UIUCDCS-R-82–1105.
Author information
Authors and Affiliations
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
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
Issue Date:
DOI: https://doi.org/10.1007/BF00128178