Data dependence and its application to parallel processing

Data dependence testing is required to detect parallelism in programs. In this paper data dependence concepts and data dependence direction vectors are reviewed. Data dependence computation in parallel and vector constructs as well as serialdo loops is covered. Several transformations that require data dependence are given as examples, such as vectorization (translating serial code into vector code), concurrentization (translating serial code into concurrent code for multiprocessors), scalarization (translating vector or concurrent code into serial code for a scalar uniprocessor), loop interchanging and loop fusion. The details of data dependence testing including several data dependence decision algorithms are given.

[1]  David A. Padua,et al.  Dependence graphs and compiler optimizations , 1981, POPL '81.

[2]  Ken Kennedy,et al.  PFC: A Program to Convert Fortran to Parallel Form , 1982 .

[3]  Utpal Banerjee,et al.  Time and Parallel Processor Bounds for Fortran-Like Loops , 1979, IEEE Transactions on Computers.

[4]  Kevin W. Bowyer Book review of The structure of computers and computations: volume one by David J. Kuck. John Wiley & Sons 1978. , 1979, CARN.

[5]  David Burton Elementary Number Theory , 1976 .

[6]  Leslie Lamport,et al.  The parallel execution of DO loops , 1974, CACM.

[7]  Utpal Banerjee,et al.  Speedup of ordinary programs , 1979 .

[8]  Ron Cytron,et al.  Interprocedural dependence analysis and parallelization , 1986, SIGP.

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

[10]  Alexander V. Veidenbaum,et al.  EFFECTS OF PROGRAM RESTRUCTURING, ALGORITHM CHANGE, AND ARCHITECTURE CHOICE ON PROGRAM PERFORMANCE. , 1984 .

[11]  John Randal Allen,et al.  Dependence analysis for subscripted variables and its application to program transformations , 1983 .

[12]  Ken Kennedy,et al.  Automatic loop interchange , 2004, SIGP.

[13]  David A. Padua,et al.  Compiler Generated Synchronization for Do Loops , 1986, ICPP.

[14]  Harriet Griffin,et al.  Elementary theory of numbers , 1955 .

[15]  David L. Kuck,et al.  The Structure of Computers and Computations , 1978 .

[16]  Clifford N. Arnold Vector Optimization on the CYBER 205 , 1983, ICPP.

[17]  Robert Henry Kuhn,et al.  Optimization and interconnection complexity for: parallel processors, single-stage networks, and decision trees , 1980 .