Skip to main content
Log in

Experiences with a parallel algorithm for data flow analysis

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

Abstract

We have designed a family of parallel data flow analysis algorithms for execution on distributed-memory MIMD machines, based on general-purpose, hybrid algorithms for data flow analysis [Marlowe and Ryder 1990]. We exploit a natural partitioning of the hybrid algorithms and explore a static mapping, dynamic scheduling strategy. Alternative mapping-scheduling choices and refinements of the flow graph condensation used are discussed. Our parallel hybrid algorithm family is illustrated on Reaching Definitions, although parallel algorithms also exist for many interprocedural (e.g., Aliasing) and intraprocedural (e.g., Available Expressions) problems [Marlowe 1989]. We have implemented the parallel hybrid algorithm for Reaching Definitions on an Intel iPSC/2. Our empirical results suggest the practicality of parallel hybrid algorithms.

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.

Similar content being viewed by others

References

  • Aho, A.V., Sethi, R., and Ullman, J.D. 1986. Compilers: Principles, Techniques and Tools. Addison-Wesley, Reading, Mass.

    Google Scholar 

  • Allen, F.E., and Cocke, J. 1976. A program data flow analysis procedure. CACM, 19, 3: 137–147.

    Google Scholar 

  • Allen, F., Burke, M., Charles, P., Cytron, R., and Ferrante, J. 1988. An overview of the PTRAN analysis system for multiprocessing. J. Parallel and Distributed Computing, 5: 617–640.

    Google Scholar 

  • Barnard, D., and Skillicorn, D., eds. 1990. Proc., Workshop on Parallel Compilation (Queens Univ., Kingston, Canada, May).

    Google Scholar 

  • Bokhari, S.H. 1981. On the mapping problem. IEEE Trans. Comps., C-30, 3: 207–214.

    Google Scholar 

  • Burke, M. 1990. An interval-based approach to exhaustive and incremental data-flow analysis. ACM Trans. Programming Languages and Systems, 12, 3 (July), 341–395.

    Google Scholar 

  • Burke, M., and Cytron, R. 1986. Interprocedural dependence analysis and parallelization. In Proc., ACM SIGPLAN Symp. on Compiler Construction (Palo Alto, Calif., June), ACM Press, pp. 162–175.

  • Callahan, D., Cooper, K., Hood, R., Kennedy, K., and Torczon, L. 1988. ParaScope: A parallel programming environment. The Internat. J. Supercomputer Applications, 2, 4: 84–99.

    Google Scholar 

  • Carroll, M.D., and Ryder, B.G. 1988. Incremental data flow analysis via dominator and attribute updates. In Conf. Record of the Fifteenth Annual ACM Symp. on Principles of Programming Languages (San Diego, Calif., Jan.), ACM Press, pp. 274–284.

  • Cooper, K.D., and Kennedy, K. 1984. Efficient computation of flow insensitive interprocedural summary information. In Proc., ACM SIGPLAN '84 Symp. on Compiler Construction (Montreal, June).

  • Cooper, K., and Kennedy, K. 1989. Fast interprocedural alias analysis. In Conf. Record of The Sixteenth Annual ACM Symp. on Principles of Programming Languages (Austin, Tex., Jan.), ACM Press, pp. 49–59.

  • Cooper, K., Kennedy, K., and Torczon, L. 1986. The impact of interprocedural analysis and optimization in the R n programming environment. ACM Trans. Programming Languages and Systems, 8, 4: 491–523.

    Google Scholar 

  • Gafter, N.M. 1990. Parallel incremental compilation. Ph.D. thesis, Dept. of Comp. Sci., Univ. of Rochester, Rochester, N.Y.

    Google Scholar 

  • Gross, T., Zobel, A., and Zolg, M. 1989. Parallel compilation for a parallel machine. In Proc., SIGPLAN '89 Conf. on Programming Language Design and Implementation (Portland, Ore., June), ACM Press, pp. 91–100.

  • Gupta, R., Pollock, L., and Soffa, M.L. 1990. Parallelizing data flow analysis. In Proc., Workshop on Parallel Compilation (Kingston, Canada, May).

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

    Google Scholar 

  • Henderson, L.A., Hiromoto, R.E., Lubeck, O.M., and Simmons, M.L. 1990. On the use of diagnostic dependence-analysis tools in parallel programming: Experiences using PTOOL. The J. Supercomputing, 4, 1 (Mar.), 83–96.

    Google Scholar 

  • Hoare, C.A.R. 1978. Communicating Sequential Processes. CACM, 21, 8 (Aug.), 666–677.

    Google Scholar 

  • Kasahara, H., and Narita, S. 1984. Practical multiprocessor scheduling algorithms for efficient parallel processing. IEEE Trans. Comps., C-33, 11: 1023–1029.

    Google Scholar 

  • Kramer, R., Gupta, R., and Soffa, M.L. 1991. The combining DAG: A technique for parallel data flow analysis. Tech. rept. 91–8, Univ. of Pittsburgh, Pittsburgh, Penn.

    Google Scholar 

  • Lee, Y., Marlowe, T.J., and Ryder, B.G. 1990a. Parallel hybrid data flow analysis algorithms. Tech. rept. CAIP-TR-108, Center for Computer Aids for Industrial Productivity, Rutgers Univ., New Brunswick, N.J.

    Google Scholar 

  • Lee, Y., Marlowe, T.J., and Ryder, B.G. 1990b. Performing data flow analysis in parallel. In Proc., Supercomputing '90 (New York, Nov.), IEEE Comp. Soc. Press, pp. 942–951.

  • Lenstra, J.K., and Kan, Rinnooy A.H.G. 1978. Complexity of scheduling under precedence constraints. Operations Research, 26, 1: 22–35.

    Google Scholar 

  • Marlowe, T.J. 1989. Incremental iteration and data flow. Ph.D. thesis, Dept. of Comp. Sci., Rutgers Univ., New Brunswick, N.J.

    Google Scholar 

  • Marlowe, T.J., and Ryder, B.G. 1990. An efficient hybrid algorithm for incremental data flow analysis. In Conf. Record of the 17th Annual ACM Symp. on Principles of Programming Languages (San Francisco, Jan.), ACM Press, pp. 184–196.

  • Marlowe, T.J., and Ryder, B.G. 1991. Properties of data flow frameworks: A unified model. Acta Informatica, 28, 2: 121–164.

    Google Scholar 

  • Midkiff, S.P., and Padua, D.A. 1990. Issues in the optimization of parallel programs. In Proc., 1990 Internat. Conf. on Parallel Processing. vol. 2 (Aug.), The Penn State Univ. Press, pp. 105–113

  • Polychronopoulos, C.D. 1988. Parallel Programming and Compilers. Kluwer Acad. Pub., Boston, Mass.

    Google Scholar 

  • Polychronopoulos, C.D., Girkar, M., Haghighat, M.R., Lee, C.L., Leung, B., and Schouten, D. 1989. Paraphrase-2: An environment for parallelizing, partitioning, synchronizing, and scheduling programs on multiprocessors. In Proc., 1989 Internat. Conf. on Parallel Processing, vol. 2, The Penn State Univ. Press, pp. 39–48.

  • Rapps, S., and Weyuker, E.J. 1985. Selecting software test data using data flow information. IEEE Trans. Software Eng., SE-11, 4: 367–375.

    Google Scholar 

  • Ryder, B.G. 1989. ISMM: Incremental software maintenance manager. In Proc., IEEE Comp. Soc. Conf. on Software Maintenance (Miami, Fla., Oct.), IEEE Comp. Soc. Press, pp. 142–164.

  • Ryder, B.G., and Pande, H. 1988. The interprocedural structure of C programs: An empirical study. Tech. rept. LCSR-TR-99, Dept. of Comp. Sci., Rutgers Univ., New Brunswick, N.J.

    Google Scholar 

  • Ryder, B.G., and Paull, M.C. 1986. Elimination algorithms for data flow analysis. ACM Computing Surveys, 18, 3 (Sept.), 277–316.

    Google Scholar 

  • Ryder, B.G., and Paull, M.C. 1988. Incremental data flow analysis algorithms. ACM Trans. Programming Languages and Systems, 10, 1 (Jan.), 1–50.

    Google Scholar 

  • Ryder, B.G., Landi, W., and Pande, H. 1990. Profiling an incremental data flow analysis algorithm. IEEE Trans. Software Eng., 16, 2 (Feb.), 129–140.

    Google Scholar 

  • Sarkar, V. 1989. Determining average program execution times and their variances. In Proc., SIGPLAN '89 Conf. on Programming Languages Design and Implementation (Portland, Ore., June), ACM Press, pp. 298–312.

  • Seshadri, V., Wortman, D.B., Junkin, M.D., Weber, S., Yu, C.P., and Small, I. 1988. Semantic analysis in a concurrent compiler. In Proc., SIGPLAN '88 Conf. on Language Design and Implementation (Atlanta, June), ACM Press, pp. 233–240.

  • Smith, K., and Appelbe, B. 1988. PAT—An interactive Fortran parallelizing assistant tool. In Proc., Internat. Conf. on Parallel Processing, vol. 2 (Aug.), The Penn State Univ. Press, pp. 58–62.

  • van Tilborg, A.M. 1989. Panel on future directions in parallel computer architecture. Comp. Arch. News, 17, 4 (June), 3–22.

    Google Scholar 

  • Weiser, M. 1984. Program slicing. IEEE Trans. on Software Eng., SE-10, 4 (July), 352–357.

    Google Scholar 

  • Wolfe, M. 1989. Optimizing Supercompilers for Supercomputers. The MIT Press, Cambridge, Mass.

    Google Scholar 

  • Yang, W, Horwitz, S., and Reps, T. 1990. A program integration algorithm that accommodates semantics preserving transformations. In Proc., Fourth ACM SIGSOFT Symp. on Software Development Environments (Irvine, Calif., Dec.), ACM Press, pp. 133–143.

  • Zadeck, F.K. 1984. Incremental data flow analysis in a structured program editor. In Proc., SIGPLAN '84 Symp. on Compiler Construction (Montreal, June), ACM Press, pp. 132–143.

  • Zobel, A. 1990. Parallel interval analysis of data flow equations. In Proc., 1990 Internat. Conf. on Parallel Processing, vol. 2 (Aug.), The Penn State Univ. Press, pp. 9–16.

Download references

Author information

Authors and Affiliations

Authors

Additional information

The research reported here was supported, in part, by the New Jersey Commission on Science and Technology and the CAIP Center's Industrial Members, by Siemens Research Corporation and by National Science Foundation grant CCR-8920078.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Lee, YF., Ryder, B.G. & Marlowe, T.J. Experiences with a parallel algorithm for data flow analysis. J Supercomput 5, 163–188 (1991). https://doi.org/10.1007/BF00127842

Download citation

  • Issue Date:

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

Keywords

Navigation