Parallelism analysis and optimization in SPEFY, a programming environment

Abstract SPEFY (Scotia Programming Environment and Facility) is a new software development environment designed to simplify and accelerate the development of large-scale programs in a manner that makes the most efficient use of the supercomputers on which they run. The centerpiece of SPEFY is the Parallelism Analysis and Optimization tool, which is an interactive facility for analyzing code, detecting data dependence, and optimizing the program by parallelism-enhancing transformations. A significant feature of the analysis is that it is performed both across and within procedures, and greatly increase the precision of data flow and dependence information. The objective of this paper is to describe the Parallelism Analysis and Optimization tool of SPEFY. It discusses data dependence, interprocedural analysis by determining the relevant effects of procedure calls, data dependence analysis incorporating interprocedural information, and program restructuring optimization techniques.

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

[2]  Ken Kennedy,et al.  Interactive Parallel Programming using the ParaScope Editor , 1991, IEEE Trans. Parallel Distributed Syst..

[3]  D J Evans,et al.  Parallel processing , 1986 .

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

[5]  Ken Kennedy,et al.  Analysis and transformation in the ParaScope editor , 1991, ICS '91.

[6]  Michael Gerndt,et al.  SUPERB: A tool for semi-automatic MIMD/SIMD parallelization , 1988, Parallel Comput..

[7]  Ken Kennedy,et al.  The impact of interprocedural analysis and optimization on the design of a software development environment , 1985, ACM SIGPLAN Notices.

[8]  Raul Mendez High performance computing: research and practice in Japan , 1992 .

[9]  Barr E. Bauer Practical parallel programming , 1992 .

[10]  Kevin Smith,et al.  PAT : An Interactive Fortran Parallelizing Assistant Tool , 1988, ICPP.

[11]  Ken Kennedy,et al.  A Practical Environment for Scientific Programming , 1987, Computer.

[12]  Hesham El-Rewini,et al.  Introduction to Parallel Computing , 1992 .

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

[14]  Ken Kennedy,et al.  Automatic translation of FORTRAN programs to vector form , 1987, TOPL.

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

[16]  Ken Kennedy,et al.  Automatic decomposition of scientific programs for parallel execution , 1987, POPL '87.

[17]  Ken Kennedy,et al.  PTOOL : A Semi-Automatic Parallel Programming Assistant , 1986, International Conference on Parallel Processing.

[18]  Vivek Sarkar,et al.  Automatic discovery of parallelism: a tool and an experiment (extended abstract) , 1988, PPoPP 1988.

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

[20]  Michael Metcalf,et al.  FORTRAN optimization , 1982 .