The ParaScope parallel programming environment

The ParaScope parallel programming environment, developed to support scientific programming of shared-memory multiprocessors, is described. It includes a collection of tools that use global program analysis to help users develop and debug parallel programs. The focus is on ParaScope's compilation system. The compilation system extends the traditional single-procedure compiler by providing a mechanism for managing the compilation of complete programs. The ParaScope editor brings both compiler analysis and user expertise to bear on program parallelization. The debugging system detects and reports timing-dependent errors, called data races, in execution of parallel programs. A project aimed at extending ParaScope to support programming in FORTRAN D, a machine-independent parallel programming language for use with both distributed-memory and shared-memory parallel computers, is described. >

[1]  Jong-Deok Choi,et al.  An efficient cache-based access anomaly detection scheme , 1991, ASPLOS IV.

[2]  Ken Kennedy,et al.  Interprocedural transformations for parallel code generation , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[3]  Doreen Cheng,et al.  An evaluation of automatic and interactive parallel programming tools , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[4]  Bowen Alpern,et al.  Detecting equality of variables in programs , 1988, POPL '88.

[5]  Richard C. Waters,et al.  Program editors should not abandon text oriented commands , 1982, SIGP.

[6]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[7]  Ken Kennedy,et al.  An Overview of the Fortran D Programming System , 1991, LCPC.

[8]  Ken Kennedy,et al.  Evaluation of compiler optimizations for Fortran D on MIMD distributed memory machines , 1992, ICS '92.

[9]  Ken Kennedy,et al.  Compiler optimizations for Fortran D on MIMD distributed-memory machines , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[10]  Mary Hall Managing interprocedural optimization , 1992 .

[11]  Ken Kennedy,et al.  A static performance estimator to guide data partitioning decisions , 1991, PPOPP '91.

[12]  Ken Kennedy,et al.  An Implementation of Interprocedural Bounded Regular Section Analysis , 1991, IEEE Trans. Parallel Distributed Syst..

[13]  Linda Torczon,et al.  Interprocedural optimization: eliminating unnecessary recompilation , 1986, SIGPLAN '86.

[14]  Keith D. Cooper,et al.  Unexpected side effects of inline substitution: a case study , 1992, LOPL.

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

[16]  Andries van Dam,et al.  Reading and Writing the Electronic Book , 1985, Computer.

[17]  Kathryn S. McKinley,et al.  Automatic and interactive parallelization , 1992 .

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

[19]  KennedyKen,et al.  Experiences using the ParaScope Editor , 1993 .

[20]  Ken Kennedy,et al.  Incremental dependence analysis , 1990 .

[21]  David Callahan,et al.  The program summary graph and flow-sensitive interprocedual data flow analysis , 1988, PLDI '88.

[22]  Alexander V. Veidenbaum,et al.  Detecting redundant accesses to array data , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

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

[24]  John Banning,et al.  : An Efficient , 2022 .

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

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

[27]  Eric Harslem,et al.  Designing the STAR User Interface , 1987, ECICS.

[28]  Ken Kennedy,et al.  Fast interprocedual alias analysis , 1989, POPL '89.

[29]  David B. Loveman,et al.  Program Improvement by Source-to-Source Transformation , 1977, J. ACM.

[30]  Edith Schonberg,et al.  An empirical comparison of monitoring algorithms for access anomaly detection , 2011, PPOPP '90.

[31]  Zhiyuan Li,et al.  Array privatization for parallel execution of loops , 1992 .

[32]  Edith Schonberg,et al.  On-the-fly detection of access anomalies , 2018, PLDI '89.

[33]  Ken Kennedy,et al.  Loop distribution with arbitrary control flow , 1990, Proceedings SUPERCOMPUTING '90.

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

[35]  Ken Kennedy,et al.  The impact of interprocedural analysis and optimization in the Rn programming environment , 1986, TOPL.

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

[37]  Douglas C. Engelbart,et al.  A research center for augmenting human intellect , 1968, AFIPS Fall Joint Computing Conference.

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

[39]  Keith D. Cooper,et al.  An experiment with inline substitution , 1991, Softw. Pract. Exp..

[40]  Allen D. Malony,et al.  Faust: an integrated environment for parallel programming , 1989, IEEE Software.

[41]  Ken Kennedy,et al.  Procedure cloning , 1992, Proceedings of the 1992 International Conference on Computer Languages.

[42]  Eugene W. Myers,et al.  A precise inter-procedural data flow algorithm , 1981, POPL '81.

[43]  Guy L. Steele,et al.  Making asynchronous parallelism safe for the world , 1989, POPL '90.

[44]  John M. Mellor-Crummey,et al.  On-the-fly detection of data races for programs with nested fork-join parallelism , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

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

[46]  Steven W. K. Tjiang,et al.  Integrating Scalar Optimization and Parallelization , 1991, LCPC.

[47]  Daniel A. Reed,et al.  Scalable Performance Environments for Parallel Systems , 1991, The Sixth Distributed Memory Computing Conference, 1991. Proceedings.