Visual Programming and Parallel Computing

Visual programming arguably provides greater benefit in explicit parallel programming, particularly coarse grain MIMD programming, than in sequential programming. Explicitly parallel programs are multi-dimenstioal objects; the natural representations of a parallel program are annotated directed graphs: data flow graphs, control flow graphs, etc. where the nodes of the graphs are sequential computations. The execution of parallel programs is a directed graph of instances of sequential computations. A visually based (directed graph) representation of parallel programs is thus more natural than a pure text string language where multi-dimensional structures must be implicitly defined. The naturalness of the annotated directed graph representation of parallel programs enables methods for programming and debugging which are qualitatively different and arguably superior to the conventional practice based on pure text string languages. Annotation of the graphs is a critical element of a practical visual programming system; text is still the best way to represent many aspects of programs. This paper presents a model of parallel programming and a model of execution for parallel programs which are the conceptual framework for a complete visual programming environement including capture of parallel structure, compilation and behavior analysis (performance and debugging). Two visually-oriented parallel programming systems, CODE 2.0 and HeNCE, each based on a variant of the model of programming, will be used to illustrate the concepts. The benefits of visually-oriented realizations of these models for program structure capture, software component reuse, performance analysis and debugging will be explored and hopefully demonstated by examples in these representations. It is only by actually implementing and using visual parallel programming languages that we have been able to fully evaluate their merits.

[1]  R. Karp,et al.  Properties of a model for parallel computations: determinacy , 1966 .

[2]  李幼升,et al.  Ph , 1989 .

[3]  Johann Rost “D2R”: a dynamic dataflow representation for task scheduling , 1993, SIGP.

[4]  Jack Dongarra,et al.  SCHEDULE: Tools for developing and analyzing parallel Fortran programs , 1986 .

[5]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[6]  M. Graf Building a visual designer's environment , 1987, FJCC.

[7]  Hesham El-Rewini,et al.  Parallax: a tool for parallel program scheduling , 1993, IEEE Parallel & Distributed Technology: Systems & Applications.

[8]  James C. Browne,et al.  CODE: a unified approach to parallel programming , 1989, IEEE Software.

[9]  Bernard Traversat,et al.  Neptune: The application of coarse-grain data flow methods to scientific parallel programming , 1990 .

[10]  Ephraim P. Glinert,et al.  Pict: An Interactive Graphical Programming Environment , 1984, Computer.

[11]  William B. Ackerman,et al.  Data Flow Languages , 1899, Computer.

[12]  Ravi Jain,et al.  An Experimental Study of the Effectiveness of High Level Parallel Programming , 1991, SIAM Conference on Parallel Processing for Scientific Computing.

[13]  Lawrence Snyder Poker (4.1): A Programmer's Reference Guide , 1985 .

[14]  James C. Browne,et al.  A Unified Model for Concurrent Debugging , 1993, 1993 International Conference on Parallel Processing - ICPP'93.

[15]  Jack Dongarra,et al.  Pvm 3 user's guide and reference manual , 1993 .

[16]  Ken Kennedy,et al.  Computer support for machine-independent parallel programming in Fortran D , 1992 .

[17]  Ted G. Lewis,et al.  Architecture of the Parallel Programming Support Environment , 1990, Digest of Papers Compcon Spring '90. Thirty-Fifth IEEE Computer Society International Conference on Intellectual Leverage.

[18]  Tao Yang,et al.  A fast static scheduling algorithm for DAGs on an unbounded number of processors , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[19]  James C. Browne,et al.  The CODE 2.0 graphical parallel programming language , 1992, ICS '92.

[20]  M. Engels,et al.  GRAPE: a CASE tool for digital signal parallel processing , 1990, IEEE ASSP Magazine.

[21]  Peter Newton,et al.  A graphical retargetable parallel programming environment and its efficient implementation , 1993, UTCS publications.

[22]  Erik Maehle,et al.  DAMP - A Dynamic Reconfigurable Multiprocessor System with a Distributed Switching Network , 1991, EDMCC.

[23]  Jack J. Dongarra,et al.  Graphical development tools for network-based concurrent supercomputing , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[24]  Robert M. Keller,et al.  Data Flow Program Graphs , 1982, Computer.

[25]  James C. Browne,et al.  Formulation and Programming of Parallel Computations: A Unified Approach , 1985, International Conference on Parallel Processing.

[26]  James C. Browne,et al.  Experimental Evaluation of a Reusability-Oriented Parallel Programming Environment , 1990, IEEE Trans. Software Eng..

[27]  Lorenzo Alvisi,et al.  Paralex: an environment for parallel programming in distributed systems , 1991, ICS '92.

[28]  William Pugh,et al.  ALEX an Alexical Programming Language , 1987 .