A Nonlinear Array Subscripts Dependence Test

Linear dependence tests determine the dependences with linear array subscripts, but only give the passive results for those with nonlinear ones. That is to say, dependences exist as long as there are nonlinear cases, which may lead to pseudo-dependences. However, to maximize the parallelism of applications and improve the credibility of the optimizing compiler, it is necessary to develop a nonlinear dependence test to eliminate the pseudo-dependences. By analyzing the optimal solution of the quadratic subscripts with the indexes bounds constraints, a new nonlinear dependence test was proposed. We theoretically proved that the nonlinear dependences satisfying the quadratic programming model can be determined, and introduced a nonlinear dependence testing algorithm based on quadratic programming. Effectiveness of this algorithm was verified at the end.

[1]  David A. Padua,et al.  Static and Dynamic Evaluation of Data Dependence Analysis Techniques , 1996, IEEE Trans. Parallel Distributed Syst..

[2]  William Pugh,et al.  A practical algorithm for exact array dependence analysis , 1992, CACM.

[3]  Kyle A. Gallivan,et al.  A unified framework for nonlinear dependence testing and symbolic analysis , 2004, ICS '04.

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

[5]  Chih-Ping Chu,et al.  An exact data dependence testing method for quadratic expressions , 2007, Inf. Sci..

[6]  Tsung-Chuan Huang,et al.  Data dependence analysis for array references , 2000, J. Syst. Softw..

[7]  Allen,et al.  Optimizing Compilers for Modern Architectures , 2004 .

[8]  Constantine D. Polychronopoulos,et al.  Symbolic analysis for parallelizing compilers , 1996, TOPL.

[9]  Anastasia Ailamaki,et al.  CMP Support for Large and Dependent Speculative Threads , 2007, IEEE Transactions on Parallel and Distributed Systems.

[10]  Zhiyuan Li,et al.  An Efficient Data Dependence Analysis for Parallelizing Compilers , 1990, IEEE Trans. Parallel Distributed Syst..

[11]  Ken Kennedy,et al.  Practical dependence testing , 1991, PLDI '91.

[12]  Zhiyuan Li,et al.  Data dependence analysis on multi-dimensional array references , 1989, ICS '89.

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

[14]  Konstantinos Kyriakopoulos,et al.  An experimental evaluation of data dependence analysis techniques , 2004, IEEE Transactions on Parallel and Distributed Systems.

[15]  Xiangyun Kong,et al.  The Direction Vector I Test , 1993, IEEE Trans. Parallel Distributed Syst..

[16]  Jing Zhou,et al.  A general data dependence analysis for parallelizing compilers , 2007, The Journal of Supercomputing.

[17]  Chau-Wen Tseng,et al.  The Power Test for Data Dependence , 1992, IEEE Trans. Parallel Distributed Syst..

[18]  Kleanthis Psarris,et al.  The I Test: An Improved Dependence Test for Automatic Parallelization and Vectorization , 1991, IEEE Trans. Parallel Distributed Syst..

[19]  Ken Kennedy,et al.  Integer Programming for Array Subscript Analysis , 1995, IEEE Trans. Parallel Distributed Syst..

[20]  Konstantinos Kyriakopoulos,et al.  Data Dependence Analysis Techniques for Increased Accuracy and Extracted Parallelism , 2004, International Journal of Parallel Programming.

[21]  Tsung-Chuan Huang,et al.  Dependence analysis with direction vector for array references , 2001, Comput. Electr. Eng..

[22]  David S. Wise Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation , 1991, PLDI 1991.

[23]  Rudolf Eigenmann,et al.  Nonlinear and Symbolic Data Dependence Testing , 1998, IEEE Trans. Parallel Distributed Syst..

[24]  Chih-Ping Chu,et al.  The generalized Direction Vector I test , 2001, Parallel Comput..

[25]  George B. Dantzig,et al.  Fourier-Motzkin Elimination and Its Dual , 1973, J. Comb. Theory, Ser. A.