ABSTRACT
Array data flow analysis is known to be crucial to the success of array privatization, one of the most important techniques for program parallelization. It is clear that array data flow analysis should be performed interprocedurally and symbolically, and that it often needs to handle the predicates represented by IF conditions. Unfortunately, such a powerful program analysis can be extremely time-consuming if not carefully designed. How to enhance the efficiency of thk analysis to a practical level remains an issue largely untouched to date. This paper documents our experience with building a highly efficient array data flow analyzer which is based on guarded array regions and which runs faster, by one or two orders of magnitude, than other similarly powerful tools.
- 1.A.V. Aho, R. Sethi, and J.D. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, Reading, Mass., 1986. Google ScholarDigital Library
- 2.V. Balasundaram. A mechanism for keeping useful internal information in parallel programming tools: The data access descriptor. Journal of Parallel and Distributed Computing, 9:154-170, 1990. Google ScholarDigital Library
- 3.W. Blume and R. Eigenmann. Symbolic analysis techniques needed for the effective parallelization of Perfect benchmarks. Technical report, Dept. of Computer Science, University of Illinois, 1994. Google ScholarDigital Library
- 4.D. Callahan and K. Kennedy. Analysis of interprocedural side effects in a parallel programming environment. In A CM SIGPLAN '86 Syrup. Compiler Construction, pages 162- 175, June 1986.Google Scholar
- 5.Lori A. Clarke and Debra J. Richardson. Applications of symbolic evaluation. The Journal of Systems and Software, 5(1):15-35, 1985. Google ScholarDigital Library
- 6.B#atrice Creusillet and F. Irigoin. Interprocedural array region analyses. Int. Journal of Parallel Programming, 24(6):513-546, December 1996. Google ScholarDigital Library
- 7.E. Duesterwald, R. Gupta, and M.L. Sofia. A practical data flow framework for array reference analysis and its use in optimizations. In A CM SIGPLAN '93 Con}. on Programming Language Design and Implementation, pages 68-77, June 1993. Google ScholarDigital Library
- 8.R. Eigenmann, J. Hoeflinger, and D. Padua. On the automatic parallelization of the perfect benchmarks. Technical Report TR 1392, CSRD, University of Illinois at Urbana- Champaign, November 1994.Google Scholar
- 9.Paul Feautrier. Dataflow analysis of array and scalar references. International Journal of Parallel Programming, 2(1):23-53, February 1991.Google ScholarCross Ref
- 10.T. Gross and P Steenkiste. Structured data/tow analysis for arrays and its use in an optimizing compiler. Software - Practice and E#erience, 20(2):133-155, February 1990. Google ScholarDigital Library
- 11.J. Gu, Z. Li, and G. Lee. Symbolic array dataflow analysis for array privatization and program parallelization. In Supercomputing, December 1995. Google ScholarDigital Library
- 12.M.W. Hall, B.R. Murphy, S.P. Amarasinghe, S.-W. Liao, and M.S. Lam. Interprocedural analysis for parallelization. In Proce#ings of the 8th Workshop on Languages and Compilers for Parallel Computing, No. 1033, In Lecture Notes in Computer Science, Springer-Verlag, Berlin, pages 61-80, August 1995. Google ScholarDigital Library
- 13.P. Havlak and K. Kennedy. An implementation of interprocedural bounded regular section analysis. IEEE Trans. on Parallel and Distributed Systems, 2(3):350-360, 1991. Google ScholarDigital Library
- 14.Z. Li. Array privatization for parallel execution of loops. In A CM Int. Conf. on Supercomputing, pages 313-322, July 1992. Google ScholarDigital Library
- 15.Vadim Maslov. Lazy array data-flow dependence analysis. In Proceedings o.f Annual A CM Symposium on Principles of Programming Languages, pages 331-325, Jan. 1994. Google ScholarDigital Library
- 16.D.E. Maydan, S.P. Amarasinghe, and M.S. Lain. Array dataflow analysis and its use in array privatization. In Proc. of the 20th A CM Syrup. on Principles of Programming Languages, pages 2-15, January 1993. Google ScholarDigital Library
- 17.Dror E. Maydan. Accurate Analysis of Army References. PhD thesis, Stanford University, October 1992. Google ScholarDigital Library
- 18.T. Nguyen, J. Gu, and Z. Li. An interprocedural parallelizing compiler and its support for memory hierarchy research. In Lecture Notes in Computer Science 1033: 8th International Workshop on Languages and Compilers for Parallel Computing, pages 96-110, Columbus, Ohio, August 1995. Springer-Verlag. Google ScholarDigital Library
- 19.William Pugh and David Wonnacott. An exact method for analysis of value-based array data dependences. In Lecture Notes in Computer Science 768: Sixth Annual Workshop on Programming Languages and Compilers for Parallel Computing, Portland, OR, August 1993. Springer-Verlag. Google ScholarDigital Library
- 20.Carl Rosene. Incremental dependence analysis. Technical Report CRPC-TRg0044, PhD thesis, Computer Science Department, Rice University, March 1990. Google ScholarDigital Library
- 21.Jr T.E. Cheatharn, G.tt. Holloway, and J.A. Townley. Symbolic evaluation and the analysis of programs. IEEE 73"ans.on Software Engineering, 5(4):402-417, July 1979.Google Scholar
- 22.R. Triolet, F. lrigoin, and P. Feautrier. Direct parallelization of CALL statments. In A CM SIGPLAN'86 Sym. on Compiler Construction, pages 176-185, July 1986. Google ScholarDigital Library
- 23.Remi Triolet. Interprocedural analysis for program restructuring with parafrase. Technical Report CSRD Rpt. No.538, Center for Supercomputing Research and Development, University of Illinois at Urbana-Champaign, December 1985.Google Scholar
- 24.P. Tu and D. Padua. Gated ssa-based demand-driven symbolic analysis for parallelizing compilers, in international Conference on Supercornputing, pages 414-423, July 1995. Google ScholarDigital Library
- 25.Pent Tu and David Padua. Automatic array privatization. In Proceedings of Sixth Workshop on Languages and Compilers for Parallel Computing, pages 500-521, August 1993. Google ScholarDigital Library
Index Terms
- Experience with efficient array data flow analysis for array privatization
Recommendations
Array-data flow analysis and its use in array privatization
POPL '93: Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languagesData-flow analysis of scalar variables and data dependence analysis on array elements are two important program analyses used in optimizing and parallelizing compilers. Traditional data-flow analysis models accesses of array elements simply as accesses ...
Experience with efficient array data flow analysis for array privatization
Array data flow analysis is known to be crucial to the success of array privatization, one of the most important techniques for program parallelization. It is clear that array data flow analysis should be performed interprocedurally and symbolically, ...
Comments