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.
Similar content being viewed by others
References
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)
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)
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)
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
Gelernter, D.: Generative communication in linda. ACM Trans. Program. Lang. Syst. 7(1), 80–112 (1985). doi:10.1145/2363.2433
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)
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)
Hoare, C.A.R.: Monitors: an operating system structuring concept. Communications of the ACM 17(10), 549–557 (1974). doi:10.1145/355620.361161
Hoare, C.A.R.: Communicating sequential processes. Communications of the ACM 21(8), 666–677 (1978). doi:10.1145/359576.359585
Jaber, A., Guarnieri, F., Wybo, J.L.: Intelligent software agents for forest fire prevention and fighting. Safety Science 39(1–2), 3–17 (2001)
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
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)
Marwedel, P.: Embedded System Design. Springer, US, (2006). doi:10.1007/0-387-30087-2
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)
Meyer, B.: Systematic concurrent object-oriented programming. Commun. ACM 36(9), 56–80 (1993). doi:10.1145/162685.162705
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)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10766-015-0370-9