On the Removal of Anti- and Output-Dependences

In this paper we build upon results of Padua and Wolfe, who introduced two graph transformations to break dependence paths including anti- and output-dependences. We first formalize these two transformations. Then, given a loop nest, we aim at determining which statements should be transformed so as to break artificial dependence paths involving anti- or output-dependences. The problem of finding the minimum number of statements to be transformed is shown to be NP-complete, and we propose two efficient heuristics.

[1]  Michael Wolfe,et al.  The Tiny Loop Restructuring Research Tool , 1991, ICPP.

[2]  Yves Robert,et al.  On the removal of anti and output dependences , 1996, Proceedings of International Conference on Application Specific Systems, Architectures and Processors: ASAP '96.

[3]  Yves Robert,et al.  Plugging Anti and Output Dependence Removal Techniques Into Loop Parallelization Algorithm , 1997, Parallel Comput..

[4]  Gyungho Lee,et al.  Symbolic Array Dataflow Analysis for Array Privatization and Program Parallelization , 1995, Proceedings of the IEEE/ACM SC95 Conference.

[5]  Rudolf Eigenmann,et al.  Automatic program parallelization , 1993, Proc. IEEE.

[6]  Barbara M. Chapman,et al.  Supercompilers for parallel and vector computers , 1990, ACM Press frontier series.

[7]  Michael Wolfe,et al.  High performance compilers for parallel computing , 1995 .

[8]  Monica S. Lam,et al.  Array-data flow analysis and its use in array privatization , 1993, POPL '93.

[9]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[10]  David F. Bacon,et al.  Compiler transformations for high-performance computing , 1994, CSUR.

[11]  Thomas Brandes The importance of direct dependences for automatic parallelization , 1988, ICS '88.

[12]  David A. Padua,et al.  Advanced compiler optimizations for supercomputers , 1986, CACM.

[13]  Zhiyuan Li,et al.  Symbolic Array Dataflow Analysis for Array Privatization and Program Parallelization , 1995, Proceedings of the IEEE/ACM SC95 Conference.

[14]  Paul Feautrier,et al.  Dataflow analysis of array and scalar references , 1991, International Journal of Parallel Programming.

[15]  S. Graham,et al.  Compiler Transformations for High-Performance , 1993 .