A decompositional approach to the design of efficient parallel programs
A methodology for the derivation of efficient parallel implementations from program specifications is developed. The goal of the methodology is to decompose a program specification into a collection of module specifications, such that each module may be implemented by a subprogram. The correctness of the whole program 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.
KeywordsPorosity Hydrate Europe
Unable to display preview. Download preview PDF.
- Bagrodia, R., K. M. Chandy, and E. Kwan, UC: A Language for the Connection Machine, Proceedings of Supercomputing 1990, November 1990, pp. 525–534.Google Scholar
- Bagrodia, R., and S. Mathur, Efficient Implementation of High-Level Parallel Programs, Proceedings of ASPLOS-IV, April 1991.Google Scholar
- Chakravarty, I., M. Kleyn, T. Woo, R. Bagrodia, and V. Austel, Unity to UC: Case Studies in Parallel Program Construction, Technical Report TR-90-21, Schlumberger Laboratory for Computer Science, November 1990.Google Scholar
- Chandy, K. M., and J. Misra, Parallel Program Design: A Foundation, Reading, Massachusetts: Addison-Wesley, 1988.Google Scholar
- Dijkstra, E. W., A Discipline of Programming, Englewood Cliffs, New Jersey: Prentice-Hall, 1976.Google Scholar
- Gries, D., The Science of Programming, New York: Springer-Verlag, 1981.Google Scholar
- Misra, J., Proving Progress for Program Sequencing, Notes on Unity 16–90, July 1991.Google Scholar
- Roberts, J. N., and L. Schwartz, Grain Consolidation in Porous Media, Physical Review, 31(9), 1985.Google Scholar
- Singh, A. K., Program Refinement in Fair Transition Systems, Conference on Parallel Architectures and Languages Europe, Eindhoven, The Netherlands, July 1991.Google Scholar