A Mechanism for Keeping Useful Internal Information in Parallel Programming Tools: The Data Access Descriptor

Abstract An important aspect of any parallel programming tool is its ability to provide useful information that can help the user optimize a program for efficient parallel execution or debug a parallel program. In many parallel programming tools, data dependence information is a fundamental requirement for the implementation of the various utilities provided by the tool. Experience has shown that while data dependence is a powerful concept, it sometimes causes several complexities both in internal analysis and in programmer-tool interaction. These problems can be overcome by summarizing the effect of data dependences in parts of the program. This paper presents a mechanism for summarizing data accesses in numerical scientific programs that is easy to implement and manipulate in a programming tool. Data dependence is viewed as an intersection between data access summaries, which allows data dependence and data access to be treated in a unified manner.

[1]  R. Triolet Programming environments for parallel machines , 1987 .

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

[3]  Ken Kennedy,et al.  A technique for summarizing data access and its use in parallelism enhancing transformations , 1989, PLDI '89.

[4]  D. Heller A Survey of Parallel Algorithms in Numerical Linear Algebra. , 1978 .

[5]  Dennis Gannon,et al.  Faust: an environment for programming parallel scientific applications , 1988, Proceedings. SUPERCOMPUTING '88.

[6]  Ken Kennedy,et al.  Interactive parallelization of numerical scientific programs , 1989 .

[7]  Utpal Banerjee,et al.  Dependence analysis for supercomputing , 1988, The Kluwer international series in engineering and computer science.

[8]  Jack J. Dongarra,et al.  Tools to aid in the analysis of memory access patterns for FORTRAN programs , 1988, Parallel Comput..

[9]  Jack Dongarra,et al.  LINPACK Users' Guide , 1987 .

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

[11]  Pen-Chung Yew,et al.  Efficient interprocedural analysis for program parallelization and restructuring , 1988, PPoPP 1988.

[12]  John R. Rice Matrix Computations and Mathematical Software , 1983 .

[13]  Paul Feautrier,et al.  Direct parallelization of call statements , 1986, SIGPLAN '86.

[14]  M.-Y. Wu,et al.  Programming environments for multiprocessors , 1987 .

[15]  Jack Dongarra,et al.  A look at the evolution of mathematical software for dense matrix problems over the past fifteen years , 1987 .

[16]  Ken Kennedy,et al.  Compile-time detection of race conditions in a parallel program , 1989, ICS '89.