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

Interprocedural dependence analysis and parallelization

Published: 01 April 2004 Publication History

Abstract

The area of dependence analysis has served as grounds for fruitful research as well as practical implementation. Compilers and tools that utilize dependence information can generate code that takes advantage of parallel resources and storage hierarchies on modern architectures. Here, we offer some historical background on the context and thinking that fostered our 1986 paper. We also attempt to summarize the direction research in this area has taken since the paper's appearance.We present a method that combines a deep analysis of program dependences with a broad analysis of the interaction among procedures. The method is more efficient than existing methods: we reduce many tests, performed separately by existing methods, to a single test. The method is more precise than existing methods with respect to references to multi-dimensional arrays and dependence information hidden by procedure calls. The method is more general than existing methods: we accommodate potentially aliased variables and structures of differing shapes that share storage. We accomplish the above through a unified approach that integrates subscript analysis with aliasing and interprocedural information.

References

[1]
M. W. Hall, S. Amarasinghe, B. Murphy, S. Liao, and M. Lam. Detecting coarse-grain parallelism using an interprocedural parallelizing compiler. Proceedings of Supercomputing '95, 1995.
[2]
Michael Hind, Michael Burke, Paul Carini, and Sam Midkiff. An Empirical Study of Precise Interprocedural Array Analysis. Scientific Programming, 3(3), 1994.
[3]
Maydan, Hennessy, and Lam. Efficient and exact data dependence analysis. PLDI, 1991.
[4]
Michael J. Wolfe. Optimizing Supercompilers for Supercomputers. Pitman, London and The MIT Press, Cambridge, Massachusetts, 1989. In the series, Research Monographs in Parallel and Distributed Computing This monograph is a revised version of the author's Ph.D. dissertation published as Technical Report UIUCDCS-R-82-1105, U. Illinois at Urbana-Champaign, 1982.
[5]
John R. Allen, "Dependence Analysis for Subscript Variables and Its Application to Program Transformations", Rice Ph.D. Thesis, April 1983.
[6]
Utpal Banerjee, "Data Dependence in Ordinary Programs", M. S. Thesis, University of Illinois at Urbana-Champaign, DCS Report No. UIUCDCS-R-76-837, November 1976.
[7]
Utpal Banerjee, "Speedup of Ordinary Programs", Ph.D. Thesis, University of Illinois at Urbana-Champaign, DCS Report No. UIUCDCS-R-79-989, October 1979.
[8]
John Banning, "An Efficient Way to Find the Side Effects of Procedure Calls and the Aliases of Variables", Conf. Rec. Seventh ACM Symposium on Principles of Programming Languages, January 1980.
[9]
Michael Burke, "An Interval Analysis Approach Toward Interprocedural Data Flow", IBM Research Report RC 10640, July 1984.
[10]
Michael Burke and Ron Cytron, "Interprocedural Dependence Analysis and Parallelization", IBM Research Report RC11794, April, 1986.
[11]
Keith Cooper, "Interprocedural Data Flow Analysis in a Programming Environment", Rice Ph.D. Thesis, April 1983.
[12]
Keith Cooper, "Analyzing Aliases of Reference Formal Parameters", Conf. Rec. Twelfth ACM Symposium on Principles of Programming Languages, 281--290, January 1985.
[13]
Keith Cooper and Ken Kennedy, "Efficient Computation of Flow Insensitive Interprocedural Summary Information", Proceedings of the SIGPLAN 84 Symposium on Compiler Construction, June 1984.
[14]
Ron Cytron, "Compile-time Scheduling and Optimization for Asynchronous Machines", Ph.D. Thesis, University of Illinois at Urbana-Champaign, August, 1982.
[15]
Christopher A. Huson, "An In-Line Subroutine Expander for Parafrase", M.S. Thesis, University of Illinois at Urbana-Champaign, 1982.
[16]
G. Kildall, "A Unified Approach to Program Optimization", Conf. Rec. First ACM Symposium on Principles of Programming Languages, 194--206, October 1973.
[17]
David J. Kuck, The Structure of Computers and Computations, Volume 1, John Wiley and Sons, New York, 1978.
[18]
Bruce R. Leasure, "Compiling Serial Languages for Parallel Machines", M.S. Thesis, University of Illinois at Urbana-Champaign, 1976.
[19]
J. H. Reif and H. R. Lewis, "Symbolic Evaluation and the Global Value Graph", Conf. Rec. Fourth ACM Symposium on Principles of Programming Languages, January 1977.
[20]
Robert Shostak, "Deciding Linear Inequalities by Computing Loop Residues", Journal of the Association for Computing Machinery, Vol. 28, No. 4, October 1981.
[21]
Remi J. Triolet, "Contribution a la Parellisation Automatique de Programmes Fortran Comportant des Appels de Procedure", Ph.D. Thesis, L'Universite Pierre et Marie Curie (Paris VI), December 1984.
[22]
Mark Wegman and Ken Zadeck, "Constant Propagation with Conditional Branches", Conf. Rec. Twelfth ACM Symposium on Principles of Programming Languages, 291--299, January 1985.
[23]
Michael J. Wolfe, "Optimizing Supercompilers for Supercomputers", Ph.D. Thesis, University of Illinois at Urbana-Champaign, 1982.

Cited By

View all
  • (2020)Refactoring GrPPI: Generic Refactoring for Generic Parallelism in C++International Journal of Parallel Programming10.1007/s10766-020-00667-xOnline publication date: 10-Jul-2020
  • (2013)KFusionProceedings of the 12th annual international conference on Aspect-oriented software development10.1145/2451436.2451440(25-36)Online publication date: 24-Mar-2013
  • (2011)ALTERProceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/1993498.1993555(480-491)Online publication date: 4-Jun-2011
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 39, Issue 4
20 Years of the ACM SIGPLAN Conference on Programming Language Design and Implementation 1979-1999: A Selection
April 2004
673 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/989393
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 April 2004
Published in SIGPLAN Volume 39, Issue 4

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)4
Reflects downloads up to 12 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2020)Refactoring GrPPI: Generic Refactoring for Generic Parallelism in C++International Journal of Parallel Programming10.1007/s10766-020-00667-xOnline publication date: 10-Jul-2020
  • (2013)KFusionProceedings of the 12th annual international conference on Aspect-oriented software development10.1145/2451436.2451440(25-36)Online publication date: 24-Mar-2013
  • (2011)ALTERProceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/1993498.1993555(480-491)Online publication date: 4-Jun-2011
  • (2011)ALTERACM SIGPLAN Notices10.1145/1993316.199355546:6(480-491)Online publication date: 4-Jun-2011
  • (2011)McFLAT: A Profile-Based Framework for MATLAB Loop Analysis and TransformationsLanguages and Compilers for Parallel Computing10.1007/978-3-642-19595-2_1(1-15)Online publication date: 2011
  • (2010)McFLATProceedings of the 23rd international conference on Languages and compilers for parallel computing10.5555/1964536.1964537(1-15)Online publication date: 7-Oct-2010
  • (2010)Semi-automatic extraction and exploitation of hierarchical pipeline parallelism using profiling informationProceedings of the 19th international conference on Parallel architectures and compilation techniques10.1145/1854273.1854321(377-388)Online publication date: 11-Sep-2010
  • (2010)Handling task dependencies under strided and aliased referencesProceedings of the 24th ACM International Conference on Supercomputing10.1145/1810085.1810122(263-274)Online publication date: 2-Jun-2010

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media