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.
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.
Allen, F.E., and Cocke, J. 1976. A program data flow analysis procedure. CACM, 19, 3: 137–147.
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.
Barnard, D., and Skillicorn, D., eds. 1990. Proc., Workshop on Parallel Compilation (Queens Univ., Kingston, Canada, May).
Bokhari, S.H. 1981. On the mapping problem. IEEE Trans. Comps., C-30, 3: 207–214.
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.
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.
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.
Gafter, N.M. 1990. Parallel incremental compilation. Ph.D. thesis, Dept. of Comp. Sci., Univ. of Rochester, Rochester, N.Y.
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.
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.
Hoare, C.A.R. 1978. Communicating Sequential Processes. CACM, 21, 8 (Aug.), 666–677.
Kasahara, H., and Narita, S. 1984. Practical multiprocessor scheduling algorithms for efficient parallel processing. IEEE Trans. Comps., C-33, 11: 1023–1029.
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.
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.
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.
Marlowe, T.J. 1989. Incremental iteration and data flow. Ph.D. thesis, Dept. of Comp. Sci., Rutgers Univ., New Brunswick, N.J.
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.
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.
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.
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.
Ryder, B.G., and Paull, M.C. 1986. Elimination algorithms for data flow analysis. ACM Computing Surveys, 18, 3 (Sept.), 277–316.
Ryder, B.G., and Paull, M.C. 1988. Incremental data flow analysis algorithms. ACM Trans. Programming Languages and Systems, 10, 1 (Jan.), 1–50.
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.
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.
Weiser, M. 1984. Program slicing. IEEE Trans. on Software Eng., SE-10, 4 (July), 352–357.
Wolfe, M. 1989. Optimizing Supercompilers for Supercomputers. The MIT Press, Cambridge, Mass.
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.
Author information
Authors and Affiliations
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
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
Issue Date:
DOI: https://doi.org/10.1007/BF00127842