Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

The Combining DAG: A Technique for Parallel Data Flow Analysis

Published: 01 August 1994 Publication History
  • Get Citation Alerts
  • Abstract

    As the number of available multiprocessors increases, so does the importance of providing software support for these systems, including parallel compilers. Data flow analysis, an important component of software tools, may be computed many times during the compilation of a program, especially when compiling for a multiprocessor. Althoughconverting a sequential data flow algorithm to a parallel algorithm can present someopportunities for computing data flow in parallel, more parallelism can be exposed by thedevelopment of new parallel data flow algorithms. We present a technique that computesrapid data flow problems in parallel and thus is applicable for commonly used classicaldata flow problems, including reaching definitions, reachable uses, available expressions,and very busy expressions. Unlike previous techniques, our technique exploits theinherent parallelism in the data flow computation that occurs across independent paths,within linear paths, and in paths through loops of a control flow graph. The technique first changes cyclic structures in a control flow graph to acyclic structures and then builds a combining directed acyclic graph (DAG) that represents the paths through the control flow graph needed to compute data flow. Data flow is then computed using two passesover the DAG by computing the data flow for the nodes on each level of the DAG inparallel. We also present experimental results comparing the performance of our algorithm with a sequential algorithm and a parallelized sequential algorithm.

    References

    [1]
    {1} F. Allen and J. Cocke, "A program data flow analysis procedure," Commun. ACM, vol. 19, no. 3, pp. 137-147, Mar. 1977.
    [2]
    {2} T. R. Allen and D. A. Padua, "Debugging Fortran on a shared memory machine," Proc. Int. Conf. Parallel Processing, 1987, pp. 721-727.
    [3]
    {3} D. Callahan, K. Kennedy, and J. Subhlok, "Analysis of event synchronization in a parallel programming tool," Proc. 2nd ACM SIGPLAN Symp. Principles and Practice of Parallel Programming, 1990, pp. 21-30.
    [4]
    {4} P. Emrath and D. A. Padua, "Automatic detection of nondeterminacy in parallel programs," Proc. ACM SIGPLAN and SIGOPS Workshop on Parallel and Distributed Debugging, 1988, pp. 89-99.
    [5]
    {5} P. G. Frankl and E. J. Weyuker, "An applicable family of data flow testing criteria," IEEE Trans. Software Eng., vol. 14, pp. 1483-1498, Oct. 1988.
    [6]
    {6} T. Gross, A. Zobel, and M. Zolg, "Parallel compilation for a parallel machine," Proc. SIGPLAN'89 Conf. Programming Language Design and Implementation, 1989, pp. 91-100.
    [7]
    {7} R. Gupta, L. L. Pollock, and M. L. Soffa, "Parallelizing data flow analysis," Workshop on Parallel Compilation, Kingston, ON, Canada, 1990.
    [8]
    {8} M. J. Harrold and M. L. Soffa, "Interprocedural data flow testing," Proc. Software Testing, Analysis, and Verification Symp., 1989, pp. 158-167.
    [9]
    {9} J. B. Kam and J. D. Ullman, "Global data flow analysis and iterative algorithms," J. ACM, vol. 23, no. 1, pp. 158-171, Jan. 1976.
    [10]
    {10} J. B. Kam and J. D. Ullman, "Monotone data flow analysis frameworks," Acta Informatica, vol. 7, pp. 305-317, 1977.
    [11]
    {11} K. W. Kennedy, "Node listings applied to data flow analysis," Conf. Record 2nd ACM Symp. Principles of Programming Languages, 1975, pp. 10-21.
    [12]
    {12} Y.-F. Lee, T. J. Marlowe, and B. G. Ryder, "Experiences with a parallel algorithm for data flow analysis," J. Supercomputing, vol. 5, pp. 163-188, Oct. 1991.
    [13]
    {13} T. J. Marlowe and B. G. Ryder, "An efficient hybrid algorithm for incremental data flow analysis," Conf. Record ACM Symp. Principles of Programming Languages, 1990, pp. 184-196.
    [14]
    {14} B. Miller and J. D. Choi, "A mechanism for efficient debugging of parallel programs," Proc. SIGPLAN'88 Conf. Programming Language Design and Implementation, 1988, pp. 135-144.
    [15]
    {15} B. Ryder, "ISMM: Incremental software maintenance manager," Proc. Conf. Software Maintenance, 1989, pp. 142-164.
    [16]
    {16} V. Sarkar, "Compile time partitioning and scheduling of parallel programs," Proc. SIGPLAN Symp. Compiler Construction, 1986, pp. 17-26.
    [17]
    {17} V. Seshadri, D. B. Wortman, M. D. Junkin, S. Weber, C. P. Yu, and I. Samll, "Semantic analysis in a concurrent compiler," Proc. SIGPLAN'88 Conf. Programming Language Design and Implementation, 1988, pp. 298-312.
    [18]
    {18} A. Zobel, "Parallel compiler optimization," Workshop on Parallel Compilation , Kingston, ON, Canada, 1990.

    Cited By

    View all
    • (2011)The tao of parallelism in algorithmsProceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/1993498.1993501(12-25)Online publication date: 4-Jun-2011
    • (2011)The tao of parallelism in algorithmsACM SIGPLAN Notices10.1145/1993316.199350146:6(12-25)Online publication date: 4-Jun-2011
    • (2011)Parallel points-to analysis for multi-core machinesProceedings of the 6th International Conference on High Performance and Embedded Architectures and Compilers10.1145/1944862.1944872(45-54)Online publication date: 24-Jan-2011
    • Show More Cited By

    Index Terms

    1. The Combining DAG: A Technique for Parallel Data Flow Analysis
      Index terms have been assigned to the content through auto-classification.

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image IEEE Transactions on Parallel and Distributed Systems
      IEEE Transactions on Parallel and Distributed Systems  Volume 5, Issue 8
      August 1994
      115 pages

      Publisher

      IEEE Press

      Publication History

      Published: 01 August 1994

      Author Tags

      1. DAG
      2. Index Termsdirected graphs
      3. combining directed acyclic graph
      4. control flow graph
      5. cyclic structures
      6. multiprocessors
      7. parallel algorithm
      8. parallel algorithms
      9. parallel compilers
      10. parallel data flow algorithms
      11. parallel data flow analysis
      12. parallel processing
      13. parallel programming
      14. parallelized sequential algorithm
      15. performance
      16. program compilers
      17. rapid data flow problems
      18. sequential algorithm
      19. sequential data flow algorithm
      20. software tools

      Qualifiers

      • Research-article

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)0
      • Downloads (Last 6 weeks)0
      Reflects downloads up to 11 Aug 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2011)The tao of parallelism in algorithmsProceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/1993498.1993501(12-25)Online publication date: 4-Jun-2011
      • (2011)The tao of parallelism in algorithmsACM SIGPLAN Notices10.1145/1993316.199350146:6(12-25)Online publication date: 4-Jun-2011
      • (2011)Parallel points-to analysis for multi-core machinesProceedings of the 6th International Conference on High Performance and Embedded Architectures and Compilers10.1145/1944862.1944872(45-54)Online publication date: 24-Jan-2011
      • (2011)EigenCFAProceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages10.1145/1926385.1926445(511-522)Online publication date: 26-Jan-2011
      • (2011)EigenCFAACM SIGPLAN Notices10.1145/1925844.192644546:1(511-522)Online publication date: 26-Jan-2011
      • (2006)Staging static analyses for program generationProceedings of the 5th international conference on Generative programming and component engineering10.1145/1173706.1173708(1-10)Online publication date: 22-Oct-2006

      View Options

      View options

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media