Abstract
Parallel programming continues to be difficult, despite substantial and ongoing research aimed at making it tractable. Especially dismaying is the gulf between theory and the practical programming. We propose a structured approach to developing parallel programs for problems whose specifications are like those of sequential programs, such that much of the work of development, reasoning, and testing and debugging can be done using familiar sequential techniques and tools. The approach takes the form of a simple model of parallel programming, a methodology for transforming programs in this model into programs for parallel machines based on the ideas of semantics-preserving transformations and programming archetypes (patterns), and an underlying operational model providing a unified framework for reasoning about those transformations that are difficult or impossible to reason about using sequential techniques. This combination of a relatively accessible programming methodology and a sound theoretical framework to some extent bridges the gulf between theory and practical programming. This paper sketches our methodology and presents our programming model and its supporting framework in some detail.
This work was supported by funding from the Air Force Office of Scientific Research (AFOSR) and the National Science Foundation (NSF).
Preview
Unable to display preview. Download preview PDF.
References
G. R. Andrews. Concurrent Programming: Principles and Practice. The Benjamin/Cummings Publishing Company, Inc., 1991.
R. J. R. Back. Refinement calculus, part II: Parallel and reactive programs. In Stepwise Refinement of Distributed Systems: Models, Formalisms, Correctness, volume 430 of Lecture Notes in Computer Science, pages 67–93. Springer-Verlag, 1990.
R. Bagrodia, K. M. Chandy, and M. Dhagat. UC—a set-based language for data-parallel programming. Journal of Parallel and Distributed Computing, 28(2):186–201, 1995.
P. Brinch Hansen. Model programs for computational science: A programming methodology for multicomputers. Concurrency: Practice and Experience, 5(5):407–423, 1993.
K. M. Chandy and J. Misra. Parallel Program Design: A Foundation. Addison-Wesley, 1989.
M. I. Cole. Algorithmic Skeletons: Structured Management of Parallel Computation. MIT Press, 1989.
K. D. Cooper, M. W. Hall, R. T. Hood, K. Kennedy, K. S. McKinley, J. M. Mellor-Crummey, L. Torczon, and S. K. Warren. The Parascope parallel programming environment. Proceedings of the IEEE, 82(2):244–263, 1993.
E. W. Dijkstra and C. S. Scholten. Predicate Calculus and Program Semantics. Springer-Verlag, 1990.
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.
D. Gries. The Science of Programming. Springer-Verlag, 1981.
C. A. R. Hoare. An axiomatic basis for computer programming. Communications of the ACM, 12(10):576–583, 1969.
L. Lamport. A temporal logic of actions. ACM Transactions on Programming Languages and Systems, 16(3):872–923, 1994.
Z. Manna and A. Pnueli. Completing the temporal picture. Theoretical Computer Science, 83(1):97–130, 1991.
A. J. Martin. Compiling communicating processes into delay-insensitive VLSI circuits. Distributed Computing, 1(4):226–234, 1986.
B. L. Massingill. A structured approach to parallel programming. Technical Report CS-TR-98-04, California Institute of Technology, 1998. Ph.D. thesis.
J. Thornley. A parallel programming model with sequential semantics. Technical Report CS-TR-96-12, California Institute of Technology, 1996.
L. G. Valiant. A bridging model for parallel computation. Communications of the ACM, 33(8):103–111, 1990.
E. F. Van de Velde. Concurrent Scientific Computing. Springer-Verlag, 1994.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1999 Springer-Verlag
About this paper
Cite this paper
Massingill, B.L. (1999). A structured approach to parallel programming: Methodology and models. In: Rolim, J., et al. Parallel and Distributed Processing. IPPS 1999. Lecture Notes in Computer Science, vol 1586. Springer, Berlin, Heidelberg . https://doi.org/10.1007/BFb0098008
Download citation
DOI: https://doi.org/10.1007/BFb0098008
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-65831-3
Online ISBN: 978-3-540-48932-0
eBook Packages: Springer Book Archive