A formal model for architecture-independent parallel software engineering

In the absence of a unifying model to describe parallel algorithms, existing architectures have served as the models. The resulting algorithms, expressed as sets of sequential processes which communicate via shared memory or message passing, are non-portable, and the component processes cannot be implemented according to an input-output specification alone. Determining the set of computations represented by such an algorithm often requires no less than simulating their execution. This dissertation develops a model, F-Nets, for expressing parallel algorithms in a manner which avoids many of these difficulties. Both high- and low-latency communication are efficiently accomodated, and processes can be implemented in any deterministic language. The possible effects of each process is completely determined by the input-output mapping it implements. Computations are defined as partial orderings of these process executions, and algorithms are represented graphically as folded computations. A formal axiomatic semantics is provided for unfolding algorithms into computations, as is an operational semantics which is used to describe efficient implementations of the model on various architectures. Some final observations and predictions are made for future work based on the model.

[1]  Ian Kaplan,et al.  Programming the Loral LDF 100 dataflow machine , 1987, SIGP.

[2]  Michael Goldsmith,et al.  Programming in occam 2 , 1985, Prentice Hall international series in computer science.

[3]  Paul Hudak,et al.  Memory coherence in shared virtual memory systems , 1986, PODC '86.

[4]  James C. Browne,et al.  Architecture and Language Independent Parallel Programming: A Feasibility Demonstration , 1988, ICPP.

[5]  John Glauert,et al.  SISAL: streams and iteration in a single-assignment language. Language reference manual, Version 1. 1 , 1983 .

[6]  Heinz Mühlenbein,et al.  MUPPET: a programming environment for message-based multiprocessors , 1986, Parallel Comput..

[7]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[8]  Harry F. Jordan,et al.  The Force: A Highly Portable Parallel Programming Language , 1989, ICPP.

[9]  David C. DiNucci Design of a debugger for large-grain data flow programs , 1988 .

[10]  Ken Kennedy,et al.  A Parallel Programming Environment , 1985, IEEE Software.

[11]  Tom DeMarco,et al.  Structured Analysis and System Specification , 1978 .

[12]  Frederick P. Brooks,et al.  No Silver Bullet: Essence and Accidents of Software Engineering , 1987 .

[13]  Geraint Jones Programming in occam , 1986, Prentice Hall International Series in Computer Science.

[14]  Dino Mandrioli,et al.  VLP: a visual language for prototyping , 1988, [Proceedings] 1988 IEEE Workshop on Languages for Automation@m_Symbiotic and Intelligent Robotics.

[15]  Jack J. Dongarra,et al.  A portable environment for developing parallel FORTRAN programs , 1987, Parallel Comput..

[16]  James H. Patterson,et al.  Portable Programs for Parallel Processors , 1987 .

[17]  Donald E. Knuth,et al.  The art of computer programming: V.1.: Fundamental algorithms , 1997 .

[18]  A. L. Beguelin SCHEDULE: a hypercube implementation , 1988, C3P.

[19]  James C. Browne,et al.  TDFL: A Task-Level Dataflow Language , 1990, J. Parallel Distributed Comput..

[20]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[21]  K. Gopinath,et al.  Copy elimination in functional languages , 1989, POPL '89.

[22]  David E. Culler,et al.  Monsoon: an explicit token-store architecture , 1990, [1990] Proceedings. The 17th Annual International Symposium on Computer Architecture.

[23]  Nicholas Carriero,et al.  Linda in context , 1989, CACM.

[24]  Gary J. Nutt,et al.  Macro E-Nets for Representation of Parallel Systems , 1973, IEEE Transactions on Computers.

[25]  David C. DiNucci,et al.  Design and implementation of parallel programs with LGDF2 , 1989, Digest of Papers. COMPCON Spring 89. Thirty-Fourth IEEE Computer Society International Conference: Intellectual Leverage.

[26]  Gary Sabot The paralation model - architecture-independent parallel programming , 1988 .

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

[28]  Ian Foster,et al.  Strand: New Concepts in Parallel Programming , 1990 .

[29]  Mustaque Ahamad,et al.  Implementing and programming causal distributed shared memory , 1991, [1991] Proceedings. 11th International Conference on Distributed Computing Systems.

[30]  Gilles Kahn,et al.  Coroutines and Networks of Parallel Processes , 1977, IFIP Congress.

[31]  Charles L. Seitz,et al.  Multicomputers: message-passing concurrent computers , 1988, Computer.

[32]  John Glauert,et al.  SISAL: streams and iteration in a single assignment language. Language reference manual, Version 1. 2. Revision 1 , 1985 .

[33]  Gul Agha,et al.  Concurrent programming using actors , 1987 .

[34]  Alan H. Karp,et al.  A comparison of 12 parallel FORTRAN dialects , 1988, IEEE Software.

[35]  Irving L. Traiger,et al.  The notions of consistency and predicate locks in a database system , 1976, CACM.

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