Skip to main content
Log in

Concurrency Paradigms: Competitive, Coordinated, and Collaborative: Which Control Mechanisms are Appropriate?

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

Concurrent computation has been with us for over 50 years, and has become essential today. Concurrency paradigms affect the way we think about parallelism, the programs we try to write, the algorithms we choose, the performance we achieve, the errors we make, and the support mechanisms we need. The paradigms are not equivalent. Although each paradigm can usually be simulated in environments designed for a different paradigm, such a “Turing machine style” proof of computational equivalency does not establish equivalency in terms of the effort required to program solutions, the proclivity for solutions to be error-prone, or the comparable effectiveness of solutions. Two classic concurrency paradigms are reviewed. A third (not so widely recognized) concurrency paradigm is then discussed.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Brinch Hanson, P.: The invention of concurrent programming. The Origin of Concurrent Programming: From Semaphores to Remote Procedure Calls, pp. 3–61. Springer, New York (2011)

  2. Brooks, C., Lee, E.A.: Ptolemy II— heterogeneous concurrent modeling and design in java. Poster presented at the 2010 Berkeley EECS annual research symposium (BEARS). http://www.eecs.berkeley.edu/BEARS (2010)

  3. Dijkstra, E.W.: Cooperating sequential processes. E.W. Dijkstra Archive. Center for American History, University of Texas at Austin (original transcription). http://www.cs.utexas.edu/EWD/transcriptions/EWD01xx/EWD123.html (1965)

  4. Eker, J., Janneck, J.W., Lee, E.A., Liu, J., Liu, X., Ludvig, J., Neuendorffer, S., Sachs, S., Xiong, Y.: Taming heterogeneity - the ptolemy approach. Proceedings of the IEEE 91(1), 127–144 (2003). doi:10.1109/JPROC.2002.805829

    Article  Google Scholar 

  5. Gelernter, D.: Generative communication in linda. ACM Trans. Program. Lang. Syst. 7(1), 80–112 (1985). doi:10.1145/2363.2433

    Article  MATH  Google Scholar 

  6. Gropp, W., Huss-Lederman, S., Lumsdaine, A., Lusk, E., Nitzberg, B., Saphir, W., Snir, M., Dongarrra, J.: MPI: the complete reference: Volume 2, The MPI-2 extensions, vol. 2. MIT Press, Cambridge, MA (1998)

  7. Hoare, C.A.R.: Towards a theory of parallel programming. In: Hoare, C.A.R., Perrott, R.H. (eds.) Operating Systems Techniques: Proceedings of a Seminar at Queen’s University, A.P.I.C. studies in data processing, pp. 61–71. Academic Press, New York, NY (1972)

  8. Hoare, C.A.R.: Monitors: an operating system structuring concept. Communications of the ACM 17(10), 549–557 (1974). doi:10.1145/355620.361161

    Article  MATH  Google Scholar 

  9. Hoare, C.A.R.: Communicating sequential processes. Communications of the ACM 21(8), 666–677 (1978). doi:10.1145/359576.359585

    Article  MathSciNet  MATH  Google Scholar 

  10. Jaber, A., Guarnieri, F., Wybo, J.L.: Intelligent software agents for forest fire prevention and fighting. Safety Science 39(1–2), 3–17 (2001)

    Article  Google Scholar 

  11. Lee, E.A., Zheng, H.: Leveraging synchronous language principles for heterogeneous modeling and design of embedded systems. In: EMSOFT ’07 Proceedings of the 7th ACM & IEEE international conference on Embedded software, pp. 114–123. ACM, New York, NY (2007). doi:10.1145/1289927.1289949

  12. Leung, M.K., Mandl, T., Lee, E.A., Latronico, E., Shelton, C., Tripakis, S., Lickly, B.: Scalable semantic annotation using lattice-based ontologies. Model Driven Engineering Languages and Systems: Proceedings of the 12th International Conference. MODELS 2009, Denver, CO, USA, October 4–9, 2009, Lecture Notes in Computer Science, vol. 5795, pp. 393–407. Springer, Berlin Heidelberg (2009)

  13. Marwedel, P.: Embedded System Design. Springer, US, (2006). doi:10.1007/0-387-30087-2

  14. Marwedel, P.: Embedded systems in a nutshell. Online by author. http://ls12-www.cs.tu-dortmund.de/daes/media/documents/publications/downloads/2008-tutorial-kdubiq.pdf (2008)

  15. Meyer, B.: Systematic concurrent object-oriented programming. Commun. ACM 36(9), 56–80 (1993). doi:10.1145/162685.162705

    Article  Google Scholar 

  16. Snir, M., Otto, S.W., Huss-Lederman, S., Walker, D.W.: Dongarrra, J: MPI: The Complete Reference: Volume 1, vol. 1, 2nd edn. MIT Press, Cambridge (1998)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to W. Morven Gentleman.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Gentleman, W.M. Concurrency Paradigms: Competitive, Coordinated, and Collaborative: Which Control Mechanisms are Appropriate?. Int J Parallel Prog 44, 325–336 (2016). https://doi.org/10.1007/s10766-015-0370-9

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10766-015-0370-9

Keywords

Navigation