Skip to main content

Identifying the available parallelism using static analysis

  • Conference paper
  • First Online:
Parallel Computation (ACPC 1993)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 734))

  • 124 Accesses

Abstract

In this paper we present a technique for identifying the available parallelism in a sequential Lisp program which is related to the data dependences between program constructs. Our technique first removes some of the data dependences due to assignments to scalar variables in a Lisp program to increase its available parallelism and consequently computes the required precedence constraints necessary for the creation of a parallel program, which is semantically equivalent to the sequential one, by detecting the data dependences between expressions using static analysis. We remove some of the data dependences due to assignments to scalar variables by transforming a Lisp program into Static Single Assignment (SSA) form.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. David R. Chase, Mark Wegman, and F. Kenneth Zadeck. Analysis of Pointers and Structures. SIGPLAN'90 Conference on Programming Language Design and Implementation, Vol. 25, Num. 6, pages 296–310, June 1990.

    Google Scholar 

  2. Ron Cytron, Michael Hind, and Wilson Hsieh. Automatic Generation of DAG Parallelism. SIGPLAN notices, volume 25, number 7, pages 54–68, July 1989.

    Google Scholar 

  3. Susan Horwitz, Phil Pfeiffer, and Thomas Reps. Dependence Analysis for Pointer Variables. Proceedings of the SIGPLAN '89 Symposium on Compiler Construction, Vol. 24, Num. 7, pages 28–40, June 1989.

    Google Scholar 

  4. N. D. Jones and S. S. Muchnick. Flow Analysis and Optimization of LISP-like Strutures. Program Flow Analysis: Theory and Applications, chapter 4, pages 102–131, Prentice-Hall, 1981.

    Google Scholar 

  5. N. D. Jones and S. S. Muchnick. A Flexible Approach to Interprocedural Data Flow Analysis and Programs with Recursive Data Structures. 9th Annual ACM Symposium on Principles of Programming Languages, pages 66–74, January 1982.

    Google Scholar 

  6. Spiridon Kalogeropulos. Compiling Techniques for the Parallel Execution of Lisp Programs. Technical report, Bath University, 1990.

    Google Scholar 

  7. Spiridon Kalogeropulos. On partitioning lisp programs. Proceedings of the 1990 EUROPAL: High Performance and Parallel Computing in Lisp Conference, November 1990.

    Google Scholar 

  8. James R Larus. Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors. Technical Report UCB/CSD 89/502, University of California, 1989.

    Google Scholar 

  9. James R. Larus and Paul N. Hilfinger. Detecting Conflicts Between Structure Accesses. Proceedings of the SIGPLAN '88 Conference on Programming Language Design and Implementation Atlanta, Georgia, pages 21–34, June 1988.

    Google Scholar 

  10. B. K. Rosen, Mark N. Wegman, and F. Kenneth Zadeck. Global Value Numbers and Redundant Computations. Proceeding of the Fifteenth Annual ACM SIGACTSIGPLAN Symposium on Principles of Programming Languages, p. 12–27, 1988.

    Google Scholar 

  11. C. Ruggieri and T. P. Murtagh. Lifetime Analysis of Dynamically Allocated Objects. Fifteenth Annual ACM Symposium on Principles of Programming Languages, pages 285–293, January 1988.

    Google Scholar 

  12. Robert Tarjan. Depth-First Search and Linear Graph Algorithms. SIAM Journal on Comput. Vol. 1, No. 2, p. 146–160, June 1972.

    Google Scholar 

  13. Ben Wegbreit. Property Extraction in Well-founded Property Sets. IEEE Transactions on Software Engineering, SE-1 (3), pages 270–285, September 1975.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Jens Volkert

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Kalogeropulos, S. (1993). Identifying the available parallelism using static analysis. In: Volkert, J. (eds) Parallel Computation. ACPC 1993. Lecture Notes in Computer Science, vol 734. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57314-3_13

Download citation

  • DOI: https://doi.org/10.1007/3-540-57314-3_13

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57314-2

  • Online ISBN: 978-3-540-48055-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics