Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/174675.177911acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article
Free access

Lazy array data-flow dependence analysis

Published: 01 February 1994 Publication History

Abstract

Automatic parallelization of real FORTRAN programs does not live up to users expectations yet, and dependence analysis algorithms which either produce too many false dependences or are too slow to contribute significantly to this. In this paper we introduce dataflow dependence analysis algorithm which exactly computes value-based dependence relations for program fragments in which all subscripts, loop bound and IF conditions are affine. Our algorithm also computes good affine approximations of dependence relations for non-affine program fragments. Actually, we do not know about any other algorithm which can compute better approximations.
And our algorithm is efficient too, because it is lazy. When searching for write statements that supply values used by a given read statement, it starts with statements which are lexicographically close to the read statement in iteration space. Then if some of the read statement instances are not “satisfied” with these close writes, the algorithm broadens its search scope by looking into more distant writes. The search scope keeps broadening until all read instances are satisfied or no write candidates are left.
We timed our algorithm on several benchmark programs and the timing results suggest that our algorithm is fast enough to be used in commercial compilers—it usually takes 5 to 15 percent of f77 -02 compilation time to analyze a program. Most programs in the 100-line range take less than 1 second to analyze on a SUN SparcStation IPX.

References

[1]
J.R. Allen and K. Kennedy. Automatic translation of Fortran programs to vector form. A CM Transactions on Programming Languages and Systems, 9(4):491-542, October 1987.
[2]
Saman P. Amarasinghe and Monica S. Lain. Communication optimization and code generation for distributed memory machines. In A CM '93 Conf. on Programming Language Design and Implementation, June 1993.
[3]
M. Berry et al. The PERFECT Club benchmarks: Effective performance evaluation of supercomputers. International Journal of Supercomputing Applications, 3(3):5--40, March 1989.
[4]
William Joseph Blume. Success And Limitations in Automatic Parallelization of the Perfect BenchmarksTM Programs. PhD thesis, Dept. of Computer Science, U. of Illinois at Urbana- Champaign, 1992. M.S. Thesis.
[5]
It. Eigenmaan, J. Hoettinger, Z. Li, and D. Padua. Experience in the automatic parallelization of 4 Perfect benchmark programs. In Proc. of the 4th Workshop on Programming Lan. guages and Compilers for Parallel Computing, August 1991.
[6]
P. Feautrier. Parametric integer prograanming. Operationnelle/Operations Research, 22(3):243- 268, September 1988.
[7]
Patti Feautrier. Array expansion. In ACM Int. Conf. on Supercomputing, St Malo, pages 429- 441, 1988.
[8]
Paul Feautder. Dataflow analysis of array and scalar references. International Journal o.f Parallel Programming, 20(1), February 1991.
[9]
Paul Feantrier. Some efficient solutions to the a~ne scheduling problem, Part I, Onedimensional time. Technical Report 92.28, IBP/MASI, April 1992.
[10]
Paul Feantrier. Some efficient solutions to the affine scheduling problem, Part II, Multidimensional time. Technical Report 92.78, IBP/MASI, Oct 1992.
[11]
Mohammand Reza Haghighat and Costantine D. Polychronopoulos. Symbolic dependence analysis for high-performance parallelizing compilers, in Advances in Languages and Compilers for Parallel Processing, pages 310-330. The MIT Press, 1991.
[12]
Wayne Kelly and William Pugh. A framework for unifying reordering transformations. Technical Report CS-TR-2995.1, Dept. of Computer Science, University of Maryland, College Park, April 1993.
[13]
A. Lichnewsky and F. Thomasset. Introducing symbolic problem solving techniques in the dependence testing phases of a vectorizer. In Proceedings of the Second International Conference on Supercomputing, St. Malo, France, July 1988.
[14]
Dror E. Maydan, Saman P. Amarasinghe, and Monica S. Lain. Array data-flow analysis and its use in array privatization. In A CM '93 Conf. on Principles of Programming Languages, January 1993.
[15]
Dror Eliezer Maydan. Accurate Analysis of Array References. PhD thesis, Computer Systems Laboratory, Stanford U., September 1992.
[16]
D. E. Maydan, 3. L. Hennessy, and M. S. Lain. Efficient and exact data dependence analysis. In A CM SIGPLAN'91 Conference on Programming Language Design and Implementation, pages 1-14, June 1991.
[17]
Y. Muraoka. Parallelism Exposure and Exploita. tion in Programs. PhD thesis, Dept. of Computer Science, University of Illinois at Urbana- Champaign, February 1971.
[18]
William Pugh. Uniform techniques for loop optimization. In 1991 International Conference on Supercomputin9, pages 341-352, Cologne, Germaa-ay, June 1991.
[19]
William Pugh. The Omega test: a fast and practical integer programming algorithm for dependence analysis. Communications of the A CM, 8:102-114, August 1992.
[20]
William Pugh and David Wonnacott. Going beyond integer programming with the Omega test to eliminate false data dependences. Technical Report CS-TR-2993, Dept. of Computer Science, University of Maryland, College Park, December 1992. An earlier version of this paper appeared at the SIGPLAN PLDI'92 conference.
[21]
William Pugh and David Wonnazott. An evaluation of exact methods for analysis of value-based array data dependences. In Sixth Annual Workshop on Programming Languages and Compilers for Parallel Computing, Portland, OR, August 1993.
[22]
William Pugh and David Wonnacott. Static analysis of upper and lower bounds on dependences and parallelism. Technical Report CS- TR-2994.2, Dept. of Computer Science, University of Maryland, College Park, June 1993.
[23]
Valentin V. Voevodin. Mathematical foundations of parallel computing. World Scientific Series in Computer Science, 1992.
[24]
Valentin V. Voevodin. Theory and practice of sequential programs parallelism investigation. Programmirovaniye (Programming and Computer Software), March 1992.
[25]
M.J. Wolfe. Optimizing Supercompilers for Supercomputers. P hD thesis, Dept. of Computer Science, University of Illinois at Urbana- Champaign, October 1982.
[26]
Michael Wolfe. Beyond induction variables. In SIGPLAN Conference on Programming Language Design and implementation, San Francisco, California, June 1992.

Cited By

View all

Index Terms

  1. Lazy array data-flow dependence analysis

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    POPL '94: Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
    February 1994
    492 pages
    ISBN:0897916360
    DOI:10.1145/174675
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 February 1994

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Article

    Conference

    POPL94

    Acceptance Rates

    POPL '94 Paper Acceptance Rate 39 of 173 submissions, 23%;
    Overall Acceptance Rate 824 of 4,130 submissions, 20%

    Upcoming Conference

    POPL '25

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

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

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Falcon: A Scalable Analytical Cache ModelProceedings of the ACM on Programming Languages10.1145/36564528:PLDI(1854-1878)Online publication date: 20-Jun-2024
    • (2019)Syntax-Directed Amorphous SlicingAutomated Software Engineering10.1023/B:AUSE.0000008667.37988.1111:1(27-61)Online publication date: 1-Jun-2019
    • (2018)Transformations techniques for extracting parallelism in non-uniform nested loopsWSEAS Transactions on Computers10.5555/1481923.14819267:9(1395-1404)Online publication date: 17-Dec-2018
    • (2018)The formalism underlying EASYMAPScience of Computer Programming10.1016/j.scico.2008.03.00272:3(71-135)Online publication date: 31-Dec-2018
    • (2018)Detecting value-based scalar dependenceInternational Journal of Parallel Programming10.1007/BF0257777023:4(327-358)Online publication date: 27-Dec-2018
    • (2016)Interprocedural Array Region AnalysesInternational Journal of Parallel Programming10.1007/BF0335675824:6(513-546)Online publication date: 26-May-2016
    • (2012)Storage Allocation for Streaming-Based Register FileEnergy-Aware Memory Management for Embedded Multimedia Systems10.1201/b11418-6(151-194)Online publication date: 4-Jan-2012
    • (2010)Detecting Method of Parallelism from Nested Loops with Loop Carried Data Dependences2010 Fifth International Multi-conference on Computing in the Global Information Technology10.1109/ICCGI.2010.11(287-292)Online publication date: Sep-2010
    • (2007)External ReviewersProceedings of the Eighth International Conference on Parallel and Distributed Computing, Applications and Technologies10.1109/PDCAT.2007.44Online publication date: 3-Dec-2007
    • (2006)Region array SSAProceedings of the 15th international conference on Parallel architectures and compilation techniques10.1145/1152154.1152165(43-52)Online publication date: 16-Sep-2006
    • Show More Cited By

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media