A Decompositional Approach to the Design of Parallel Programs

A methodology for the derivation of parallel implementations from program specifications is developed. The goal of the methodology is to decompose a program specification into a collection of module specifications via property refinement, such that each module may be implemented independently by a subprogram. The correctness of the implementation is then deduced from the correctness of the property refinement procedure and the correctness of the individual subprograms. The refinement strategy is based on identifying frequently occurring control structures such as sequential composition and iteration. The methodology is developed in the context of the UNITY logic and the UC programming language, and illustrated through the solution of diffusion aggregation in fluid flow simulations. >

[1]  David Gries,et al.  The Science of Programming , 1981, Text and Monographs in Computer Science.

[2]  Lawrence Snyder Applications of the “phase abstractions” for portable and scalable parallel programming , 1992 .

[3]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[4]  Schwartz,et al.  Grain consolidation and electrical conductivity in porous media. , 1985, Physical review. B, Condensed matter.

[5]  A. Udaya Shankar,et al.  Protocol Verification via Projections , 1984, IEEE Transactions on Software Engineering.

[6]  Edgar Knapp,et al.  An exercise in the formal derivation of parallel programs: maximum flows in graphs , 1990, TOPL.

[7]  Cliff B. Jones,et al.  Systematic software development using VDM , 1986, Prentice Hall International Series in Computer Science.

[8]  Kaisa Sere,et al.  Stepwise Refinement of Parallel Algorithms , 1990, Sci. Comput. Program..

[9]  Rajive L. Bagrodia,et al.  Efficient Implementation of high-level parallel programs , 1991, ASPLOS IV.

[10]  Nancy A. Lynch,et al.  Hierarchical correctness proofs for distributed algorithms , 1987, PODC '87.

[11]  Ambuj K. Singh,et al.  A Decompositional Approach to the Design of Efficient parallel Programs , 1992, PARLE.

[12]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[13]  K. Mani Chandy,et al.  UC: a language for the connection machine , 1990, Proceedings SUPERCOMPUTING '90.

[14]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .