Skip to main content

A structured approach to parallel programming: Methodology and models

  • Conference paper
  • First Online:
Parallel and Distributed Processing (IPPS 1999)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1586))

Included in the following conference series:

  • 125 Accesses

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).

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. G. R. Andrews. Concurrent Programming: Principles and Practice. The Benjamin/Cummings Publishing Company, Inc., 1991.

    Google Scholar 

  2. 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.

    Google Scholar 

  3. 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.

    Article  MATH  Google Scholar 

  4. P. Brinch Hansen. Model programs for computational science: A programming methodology for multicomputers. Concurrency: Practice and Experience, 5(5):407–423, 1993.

    Google Scholar 

  5. K. M. Chandy and J. Misra. Parallel Program Design: A Foundation. Addison-Wesley, 1989.

    Google Scholar 

  6. M. I. Cole. Algorithmic Skeletons: Structured Management of Parallel Computation. MIT Press, 1989.

    Google Scholar 

  7. 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.

    Article  Google Scholar 

  8. E. W. Dijkstra and C. S. Scholten. Predicate Calculus and Program Semantics. Springer-Verlag, 1990.

    Google Scholar 

  9. E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.

    Google Scholar 

  10. D. Gries. The Science of Programming. Springer-Verlag, 1981.

    Google Scholar 

  11. C. A. R. Hoare. An axiomatic basis for computer programming. Communications of the ACM, 12(10):576–583, 1969.

    Article  MATH  Google Scholar 

  12. L. Lamport. A temporal logic of actions. ACM Transactions on Programming Languages and Systems, 16(3):872–923, 1994.

    Article  Google Scholar 

  13. Z. Manna and A. Pnueli. Completing the temporal picture. Theoretical Computer Science, 83(1):97–130, 1991.

    Article  MATH  Google Scholar 

  14. A. J. Martin. Compiling communicating processes into delay-insensitive VLSI circuits. Distributed Computing, 1(4):226–234, 1986.

    Article  MATH  Google Scholar 

  15. B. L. Massingill. A structured approach to parallel programming. Technical Report CS-TR-98-04, California Institute of Technology, 1998. Ph.D. thesis.

    Google Scholar 

  16. J. Thornley. A parallel programming model with sequential semantics. Technical Report CS-TR-96-12, California Institute of Technology, 1996.

    Google Scholar 

  17. L. G. Valiant. A bridging model for parallel computation. Communications of the ACM, 33(8):103–111, 1990.

    Article  Google Scholar 

  18. E. F. Van de Velde. Concurrent Scientific Computing. Springer-Verlag, 1994.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

José Rolim Frank Mueller Albert Y. Zomaya Fikret Ercal Stephan Olariu Binoy Ravindran Jan Gustafsson Hiroaki Takada Ron Olsson Laxmikant V. Kale Pete Beckman Matthew Haines Hossam ElGindy Denis Caromel Serge Chaumette Geoffrey Fox Yi Pan Keqin Li Tao Yang G. Chiola G. Conte L. V. Mancini Domenique Méry Beverly Sanders Devesh Bhatt Viktor Prasanna

Rights and permissions

Reprints 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

Publish with us

Policies and ethics