This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Interprocedural Partial Redundancy Elimination With Application to Distributed Memory Compilation
July 1998 (vol. 9 no. 7)
pp. 609-625

Abstract—Partial Redundancy Elimination (PRE) is a general scheme for suppressing partial redundancies which encompasses traditional optimizations like loop invariant code motion and redundant code elimination. In this paper, we address the problem of performing this optimization interprocedurally. We present an Interprocedural Partial Redundancy Elimination (IPRE) scheme based upon a new, concise, full program representation. Our method is applicable to arbitrary recursive programs. We use interprocedural partial redundancy elimination for placement of communication and communication preprocessing statements while compiling for distributed memory parallel machines. We have implemented our scheme as an extension to the Fortran D compilation system. We present experimental results from two codes compiled using our system to demonstrate the useful of IPRE in distributed memory compilation.

[1] G. Agrawal, A. Sussman, and J. Saltz, "Compiler and Runtime Support for Structured and Block Structured Applications," Proc. Supercomputing '93, pp. 578-587.Los Alamitos, Calif.: IEEE CS Press, Nov. 1993.
[2] A.V. Aho, R. Sethi, and J.D. Ullman, Compilers, Principles, Techniques and Tools.New York: Addison-Wesley, 1985.
[3] B. Avalani, I. Foster, M. Xu, and A. Choudhary, "A Compilation System That Integrates HPF and Fortran M," Proc. Scalable High Performance Computing Conf. (SHPCC-94), pp. 293-300, May 1994.
[4] J. Banning, "A Method for Determining the Side Effects of Procedure Calls," PhD thesis, Stanford Univ., Aug. 1978.
[5] J. Barth, "An Interprocedural Data Flow Analysis Algorithm," Conf. Record Fourth ACM Symp. Principles of Programming Languages,Los Angeles, Jan. 1977.
[6] B.R. Brooks, R.E. Bruccoleri, B.D. Olafson, D.J. States, S. Swaminathan, and M. Karplus, "Charmm: A Program for Macromolecular Energy, Minimization, and Dynamics Calculations," J. Computational Chemistry, vol. 4, p. 187, 1983.
[7] M. Burke, "An Interval-Based Approach to Exhaustive and Incremental Interprocedural Data-Flow Analysis," ACM Trans. Programming Languages and Systems, vol. 12, no. 3, pp. 341-395, July 1990.
[8] M. Burke and L. Torczon, "Interprocedural Optimization: Eliminating Unnecessary Recompilation," ACM Trans. Programming Languages and Systems, vol. 15, no. 3, pp. 367-399, July 1993.
[9] D. Callahan, "The Program Summary Graph and Flow-Sensitive Interprocedural Data Flow Analysis," Proc. SIGPLAN '88 Conf. Programming Language Design and Implementation,Atlanta, Ga., June 1988.
[10] D. Callahan, K. Cooper, K. Kennedy, and L. Torczon, "Interprocedural Constant Propagation," Proc. SIGPLAN '86 Symp. Compiler Construction,Palo Alto, Calif., June 1986.
[11] K. Cooper and K. Kennedy, "Interprocedural Side-Effect Analysis in Linear Time," Proc. SIGPLAN '88 Conf. Programming Language Design and Implementation,Atlanta, Ga., June 1988.
[12] K. Cooper, K. Kennedy, and L. Torczon, "The Impact of Interprocedural Analysis and Optimization in the RN Programming Environment," ACM Trans. Programming Languages and Systems, vol. 8, no. 4, pp. 491-523, Oct. 1986.
[13] R. Das, D. J. Mavriplis, J. Saltz, S. Gupta, and R. Ponnusamy, "The Design and Implementation of a Parallel Unstructured Euler Solver Using Software Primitives," AIAA J., vol. 32, no. 3, pp. 489-496, Mar. 1994.
[14] R. Das and J. Saltz, "Parallelizing Molecular Dynamics Codes Using the Parti Software Primitives," Proc. Sixth SIAM Conf. Parallel Processing for Scientific Computing, pp. 187-192, Mar. 1993.
[15] D.M. Dhamdhere and H. Patil, "An Elimination Algorithm for Bidirectional Data Flow Problems Using Edge Placement," ACM Trans. Programming Languages and Systems, vol. 15, no. 2, pp. 312-336, Apr. 1993.
[16] K. Drechsler and M. Stadel, "A Solution to a Problem with Morel and Renvoise's 'Global Optimization by Suppression of Partial Redundancies' " ACM Trans. Programming Languages and Systems, vol. 10, no. 4, pp. 635-640, Oct. 1988.
[17] G. Edjlali, G. Agrawal, A. Sussman, and J. Saltz, "Data Parallel Programming in an Adaptive Environment," Technical Reports CS-TR-3350 and UMIACS-TR-94-109, Univ. of Maryland, Dept. of Computer Science and UMIACS, Sept. 1994.
[18] M. Gupta, E. Schonberg, and H. Srinivasan, "A Unified Data Flow Framework for Optimizing Communication," Proc. Languages and Compilers for Parallel Computing, Aug. 1994.
[19] M. Hall, "Managing Interprocedural Optimization," PhD thesis, Rice Univ., Oct. 1990.
[20] M. Hall, J.M Mellor Crummey, A. Carle, and R.G Rodriguez, "FIAT: A Framework for Interprocedural Analysis and Transformations," Proc. Sixth Workshop Languages and Compilers for Parallel Computing, pp. 522-545. Springer-Verlag, Aug. 1993.
[21] M.W. Hall, S. Hiranandani, K. Kennedy, and C.-W. Tseng, "Interprocedural Compilation of Fortran D for MIMD Distributed-Memory Machines," Proc. Supercomputing '92, pp. 522-534.Los Alamitos, Calif.: IEEE CS Press, Nov. 1992.
[22] R. von Hanxleden, "Handling Irregular Problems With Fortran D—A Preliminary Report," Proc. Fourth Workshop Compilers for Parallel Computers,Delft, The Netherlands, Dec. 1993. Also available as CRPC Technical Report CRPC-TR93339-S.
[23] R. von Hanxleden and K. Kennedy, "Give-N-Take—A Balanced Code Placement Framework," Proc. SIGPLAN '94 Conf. Programming Language Design and Implementation, pp. 107-120. ACM Press, June 1994.
[24] M.J. Harrold and M.L. Soffa, "Efficient Computation of Interprocedural Definition-Use Chains," ACM Trans. Programming Languages and Systems, vol. 16, no. 2, pp. 175-204, Mar. 1994.
[25] S. Hiranandani, K. Kennedy, and C. Tseng, "Evaluation of Compiler Optimizations for Fortran D on MIMD Distributed-Memory Machines," Proc. 1992 Int'l Conf. Supercomputing. ACM Press, July 1992.
[26] S. Hiranandani, K. Kennedy, and C.-W. Tseng, "Compiling Fortran D for MIMD Distributed-Memory Machines," Comm. ACM, vol. 35, no. 8, pp. 66-80, Aug. 1992.
[27] S. Horwitz, T. Reps, and D. Binkley, “Interprocedural Slicing Using Dependence Graphs,” ACM Trans. Programming Languages and Systems. vol. 12, no. 1, pp. 26-60, Jan. 1990.
[28] Y.-S. Hwang, R. Das, J. Saltz, B. Brooks, and M. Hodoscek, "Parallelizing Molecular Dynamics Programs for Distributed Memory Machines: An Application of the CHAOS Runtime Support Library," Technical Reports CS-TR-3374 and UMIACS-TR-94-125, Dept. of Computer Science and UMIACS, Univ. of Maryland, Nov. 1994.
[29] J. Knoop and B. Steffan, "Efficient Interprocedural Bit-Vector Data Flow Analyses: A Uniform Interprocedural Framework," technical report, Dept. of Computer Science, Univ. of Kiel, Sept. 1993.
[30] J. Knoop, O. Rüthing, and B. Steffen, "Lazy Code Motion," Proc. ACM SIGPLAN '92 Conf. Program Language Design and Implementation,San Francisco, June 1992.
[31] C. Koelbel, D. Loveman, R. Schreiber, G. Steele Jr., and M. Zosel, The High Performance Fortran Handbook. MIT Press, 1994.
[32] E. Morel and C. Renvoise, "Global Optimization by Suppression of Partial Redundancies," Comm. ACM, vol. 22, no. 2, pp. 96-103, Feb. 1979.
[33] E. Morel and C. Renvoise, "Interprocedural Elimination of Partial Redundancies," Program Flow Analysis: Theory and Applications.Englewood Cliffs, N.J.: Prentice Hall, 1981.
[34] E. Myers, "A Precise Interprocedural Data Flow Algorithm," Conf. Record Eighth ACM Symp. Principles of Programming Languages, pp. 219-230, Jan. 1981.
[35] T. Reps, S. Horowitz, and M. Sagiv, "Precise Interprocedural Dataflow Analysis via Graph Reachability," Proc. Conf. Record 14th Ann. ACM SIGACT/SIGPLAN Symp. Principles of Programming Languages, Jan. 1995.
[36] R.W. Scheifler, "An Analysis of Inline Substitution for a Structured Programming Language," Comm. ACM, vol. 20, no. 9, pp. 647-654, Sept. 1977.
[37] A. Sorkin, "Some Comments on 'A Solution to a Problem with Morel and Renvoise's 'Global Optimization by Suppression of Partial Redundancies'," ACM Trans. Programming Languages and Systems, vol. 11, no. 4, pp. 666-668, Oct. 1989.
[38] J. Subhlok, J.M. Stichnoth, D.R. O'Hallaron, and T. Gross, "Exploiting Task and Data Parallelism on a Multicomputer," Proc. Fourth ACM SIGPLAN Symp. Principles and Practice of Parallel Programming (PPOPP), pp. 13-22, May 1993.
[39] A. Sussman, G. Agrawal, and J. Saltz, "A Manual for the Multiblock PARTI Runtime Primitives," revision 4.1, Technical Reports CS-TR-3070.1 and UMIACS-TR-93-36.1, Dept. of Computer Science and UMIACS, Univ. of Maryland, Dec. 1993.

Index Terms:
Distributed memory compilation, Partial Redundancy Elimination, interprocedural analysis, communication optimizations, irregular applications.
Citation:
Gagan Agrawal, "Interprocedural Partial Redundancy Elimination With Application to Distributed Memory Compilation," IEEE Transactions on Parallel and Distributed Systems, vol. 9, no. 7, pp. 609-625, July 1998, doi:10.1109/71.707537
Usage of this product signifies your acceptance of the Terms of Use.