Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1183401.1183448acmconferencesArticle/Chapter ViewAbstractPublication PagesicsConference Proceedingsconference-collections
Article

Violated dependence analysis

Published: 28 June 2006 Publication History

Abstract

The polyhedral model is a powerful framework to reason about high level loop transformations. Yet the lack of scalable algorithms and tools has deterred actors from both academia and industry to put this model to practical use. Indeed, for fundamental complexity reasons, its applicability has long been limited to simple kernels. Recent developments broke some generally accepted ideas about these limitations. In particular, new algorithms made it possible to compute the target code for full SPEC benchmarks while this code generation step was expected not to be scalable.Instancewise array dependence analysis computes a finite, intensional representation of the (statically unbounded) set of all dynamic dependences. This problem has always been considered non-scalable and/or an overkill with respect to less expressive and faster dependence tests. On the contrary, this article presents experimental evidence of its applicability to full SPEC CPU2000 benchmarks. To make this possible, we revisit the characterization of data dependences, considering relations between time dimensions of the transformed space. Beyond algorithmic benefits, this naturally leads to a novel way of reasoning about violated dependences across arbitrary transformation sequences. Reasoning about violated dependences relieves the compiler designer from the cumbersome task of implementing specific legality checks for each single transformation. It also allows, in the case of invalid transformations, to precisely determine the violated dependences that need to be corrected. Identifying these violations can in turn enable automatic correction schemes to fix an illegal transformation sequence with minimal changes.

References

[1]
J. Allen and K. Kennedy. Automatic translation of FORTRAN programs to vector form. ACM Transactions on Programming Languages and Systems, 9(4):491--542, Oct. 1987.
[2]
R. Allen and K. Kennedy. Optimizing Compilers for Modern Architectures. Morgan and Kaufman, 2002.
[3]
U. Banerjee. Data dependence in ordinary programs. Master's thesis, Dept. of Computer Science, University of Illinois at Urbana-Champaign, November 1976.
[4]
U. Banerjee. Dependence Analysis for Supercomputing. Kluwer Academic Publishers, Boston, 1988.
[5]
D. Barthou. Array Dataflow Analysis in Presence of Non-affine Constraints. PhD thesis, Université de Versailles, France, Feb. 1998. http://www.prism.uvsq.fr/~bad/these.html.
[6]
C. Bastoul. Code generation in the polyhedral model is easier than you think. In Parallel Architectures and Compilation Techniques (PACT'04), Antibes, France, Sept. 2004.
[7]
C. Bastoul and P. Feautrier. Adjusting a program transformation for legality. Parallel processing letters, 15(1):3--17, Mar. 2005.
[8]
F. Chow. Maximizing application performance through interprocedural optimization with the PathScale EKO compiler suite. http://www.pathscale.com/whitepapers.html, Aug. 2004.
[9]
A. Cohen, S. Girbal, D. Parello, M. Sigler, O. Temam, and N. Vasilache. Facilitating the search for compositions of program transformations. In ACM Intl. Conf. on Supercomputing (ICS'05), pages 151--160, Boston, Massachusetts, June 2005.
[10]
J.-F. Collard. Parallélisation automatique des programmes à contrôle dynamique. PhD thesis, Université Pierre et Marie Curie (Paris 6), France, Jan. 1995. http://www.prism.uvsq.fr/~jfc/memoire.ps.
[11]
A. Darte. On the complexity of loop fusion. Parallel Computing, 26(9): 1175--1193, 2000.
[12]
C. Eisenbeis and J.-C. Sogno. A general algorithm for data dependence analysis. In ICS '92: Proceedings of the 6th international conference on Supercomputing, pages 292--302, Washington, D. C, United States, 1992. ACM Press.
[13]
P. Feautrier. Array expansion. In ACM Intl. Conf. on Supercomputing, pages 429--441, St. Malo, France, July 1988.
[14]
P. Feautrier. Parametric integer programming. RAIRO Recherche Opérationnelle, 22:243--268, Sept. 1988.
[15]
P. Feautrier. Dataflow analysis of scalar and array references. Intl. J. of Parallel Programming, 20(1):23--53, Feb. 1991.
[16]
P. Feautrier. Some efficient solutions to the affine scheduling problem, part II, multidimensional time. Intl. J. of Parallel Programming, 21(6):389--420, Dec. 1992. See also Part I, one dimensional time, 21(5):315--348.
[17]
S. Girbal, N. Vasilache, C. Bastoul, A. Cohen, D. Parello, M. Sigler, and O. Temam. Semi-automatic composition of loop transformations for deep parallelism and memory hierarchies. Intl. J. of Parallel Programming, 2006. 57 pages. Accepted for publication.
[18]
G. Goff, K. Kennedy, and C. Tseng. Practical dependence testing. In Proceedings of the ACM SIGPLAN'91 Conference on Programming Language Design and Implementation, pages 15--29, New York, june 1991.
[19]
M. Griebl. Automatic parallelization of loop programs for distributed memory architectures. Habilitation thesis. Facultät für Mathematik und Informatik, Universität Passau, 2004.
[20]
F. Irigoin and R. Triolet. Computing dependence direction vectors and dependence cones with linear systems. Technical Report ENSMP-CAI-87-E94, Ecole des Mines de Paris, Fontainebleau (France), 1987.
[21]
W. Kelly. Optimization within a unified transformation framework. Technical Report CS-TR-3725, University of Maryland, 1996.
[22]
X. Kong, D. Klappholz, and K. Psarris. The i test: A new test for subscript data dependence. In ICPP'90 International Conference on Parallel Processing, pages 204--211, St. Charles, Aug. 1990.
[23]
L. Lamport. The parallel execution of do loops. Communications of ACM, 17(2):83--93, 1974.
[24]
V. Lefebvre and P. Feautrier. Automatic storage management for parallel programs. Parallel Computing, 24(3):649--671, 1998.
[25]
A. W. Lim and M. S. Lam. Communication-free parallelization via affine transformations. In 24th ACM Symp. on Principles of Programming Languages, pages 201--214, Paris, France, Jan. 1997.
[26]
V. Loechner and D. Wilde. Parameterized polyhedra and their vertices. Intl. J. of Parallel Programming, 25(6), Dec. 1997. http://icps.u-strasbg.fr/PolyLib.
[27]
D. E. Maydan, S. P. Amarasinghe, and M. S. Lam. Array dataflow analysis and its use in array privatization. In 20th ACM Symp. on Principles of Programming Languages, pages 2--15, Charleston, South Carolina, Jan. 1993.
[28]
D. E. Maydan, J. L. Hennessy, and M. S. Lam. Efficient and exact data dependence analysis. In PLDI '91: Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation, pages 1--14, New York, NY, USA, 1991.
[29]
P. Petersen and D. Padua. Experimental evaluation of some data dependence tests. Technical Report CSRD 1080, University of Illinois at Urbana-Champaign, Feb. 1991.
[30]
P. Petersen and D. Padua. Static and dynamic evaluation of data dependence analysis techniques. IEEE Transactions on Parallel and Distributed Systems, 7(11):1121--1132, november 1996.
[31]
K. Psarris and K. Kyriakopoulos. An experimental evaluation of data dependence analysis techniques. IEEE Transactions on Parallel and Distributed Systems, 15(3):196--213, Mar. 2004.
[32]
W. Pugh. The omega test: a fast and practical integer programming algorithm for dependence analysis. In Proceedings of the third ACM/IEEE conference on Supercomputing, pages 4--13, Albuquerque, Aug. 1991.
[33]
W. Pugh. Uniform techniques for loop optimization. In ACM Intl. Conf. on Supercomputing (ICS'91), pages 341--352, Cologne, Germany, June 1991.
[34]
F. Quilleré and S. Rajopadhye. Optimizing memory usage in the polyhedral model. ACM Trans. on Programming Languages and Systems, 22(5):773--815, Sept. 2000.
[35]
F. Quilleré, S. Rajopadhye, and D. Wilde. Generation of efficient nested loops from polyhedra. Intl. J. of Parallel Programming, 28(5):469--498, Oct. 2000.
[36]
A. Schrijver. Theory of Linear and Integer Programming. John Wiley and Sons, Chichester, UK, 1986.
[37]
N. Vasilache, C. Bastoul, and A. Cohen. Polyhedral code generation in the real world. In Proceedings of the International Conference on Compiler Construction (ETAPS CC'06), LNCS, pages 185--201, Vienna, Austria, Mar. 2006. Springer-Verlag.
[38]
F. Vivien. Détection de parallélisme dans les boucles imbriquées. PhD thesis, ENS - Lyon, 1997.
[39]
M. Wolfe. High performance compilers for parallel computing. Addison-Wesley Publishing Company, 1995.
[40]
M. Wolfe and U. Banerjee. Data dependence and its application to parallel processing. International Journal of Parallel Programming, 16(2):137--178, 1987.
[41]
M. Wolfe and C. W. Tseng. The power test for data dependence. IEEE Transactions on Parallel and Distributed Systems, 3(5):591--601, 1992.
[42]
D. G. Wonnacott. Constraint-Based Array Dependence Analysis. PhD thesis, University of Maryland, 1995.

Cited By

View all
  • (2022)Polyhedral Specification and Code Generation of Sparse Tensor Contraction with Co-iterationACM Transactions on Architecture and Code Optimization10.1145/356605420:1(1-26)Online publication date: 16-Dec-2022
  • (2021)Domain-Specific Multi-Level IR Rewriting for GPUACM Transactions on Architecture and Code Optimization10.1145/346903018:4(1-23)Online publication date: 3-Sep-2021
  • (2021)Combining Static and Dynamic Analysis to Query Characteristics of HPC Applications2021 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)10.1109/IPDPSW52791.2021.00071(420-429)Online publication date: Jun-2021
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ICS '06: Proceedings of the 20th annual international conference on Supercomputing
June 2006
385 pages
ISBN:1595932828
DOI:10.1145/1183401
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: 28 June 2006

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

ICS06
Sponsor:
ICS06: International Conference on Supercomputing 2006
June 28 - July 1, 2006
Queensland, Cairns, Australia

Acceptance Rates

ICS '06 Paper Acceptance Rate 37 of 141 submissions, 26%;
Overall Acceptance Rate 629 of 2,180 submissions, 29%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)15
  • Downloads (Last 6 weeks)2
Reflects downloads up to 24 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2022)Polyhedral Specification and Code Generation of Sparse Tensor Contraction with Co-iterationACM Transactions on Architecture and Code Optimization10.1145/356605420:1(1-26)Online publication date: 16-Dec-2022
  • (2021)Domain-Specific Multi-Level IR Rewriting for GPUACM Transactions on Architecture and Code Optimization10.1145/346903018:4(1-23)Online publication date: 3-Sep-2021
  • (2021)Combining Static and Dynamic Analysis to Query Characteristics of HPC Applications2021 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)10.1109/IPDPSW52791.2021.00071(420-429)Online publication date: Jun-2021
  • (2018)Visual Program Manipulation in the Polyhedral ModelACM Transactions on Architecture and Code Optimization10.1145/317796115:1(1-25)Online publication date: 22-Mar-2018
  • (2018)Using Polyhedral Analysis to Verify OpenMP Applications are Data Race Free2018 IEEE/ACM 2nd International Workshop on Software Correctness for HPC Applications (Correctness)10.1109/Correctness.2018.00010(42-50)Online publication date: Nov-2018
  • (2016)Variable LiberalizationACM Transactions on Architecture and Code Optimization10.1145/296310113:3(1-25)Online publication date: 17-Aug-2016
  • (2016)Mapping deviation: a technique to adapt or to guard loop transformation intuitions for legalityProceedings of the 25th International Conference on Compiler Construction10.1145/2892208.2892216(229-239)Online publication date: 17-Mar-2016
  • (2015)Improving compiler scalability: optimizing large programs at small priceACM SIGPLAN Notices10.1145/2813885.273795450:6(143-152)Online publication date: 3-Jun-2015
  • (2015)Improving compiler scalability: optimizing large programs at small priceProceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/2737924.2737954(143-152)Online publication date: 3-Jun-2015
  • (2015)Mining Massive Vector Data on Single Instruction Multiple Data MicroarchitecturesProceedings of the 2015 IEEE International Conference on Data Mining Workshop (ICDMW)10.1109/ICDMW.2015.85(597-606)Online publication date: 14-Nov-2015
  • Show More Cited By

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