Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

A survey of support for structured communication in concurrency control models

Published: 01 April 2014 Publication History

Abstract

The two standard models used for communication in concurrent programs, shared memory and message passing, have been the focus of much debate for a long time. Still, we believe the main issue at stake should not be the choice between these models, but rather how to ensure that communication is structured, i.e., it occurs only in syntactically restricted code regions. In this survey, we explore concurrency control models and evaluate how their characteristics contribute positively or negatively to the support for structured communication. We focus the evaluation on three properties: reasonability, which is the main property we are interested in and determines how easily programmers can reason about a concurrent program's execution; performance, which determines whether there are any distinct features which can prevent or facilitate efficient implementations; and composability, which determines whether a model offers constructs that can be used as building blocks for coarser-grained, or higher-level, concurrency abstractions.

References

[1]
Adve, S.V. and Boehm, H.-J., Memory models: a case for rethinking parallel languages and hardware. Comm. ACM. v53 i8. 90-101.
[2]
Agha, G., Actors: A Model of Concurrent Computation in Distributed Systems. 1986. MIT Press, Cambridge, MA, USA.
[3]
Alexandrescu, A., The D Programming Language. 2010. Addison-Wesley Professional, Upper Saddle River, NJ, USA.
[4]
Andrews, G.R., Paradigms for process interaction in distributed programs. ACM Comput. Surv. v23. 49-90.
[5]
Andrews, G.R. and Schneider, F.B., Concepts and notations for concurrent programming. ACM Comput. Surv. v15. 3-43.
[6]
J. Armstrong, Why I don't like shared memory, personal Blog-Armstrong on Software (September 2006). URL http://armstrongonsoftware.blogspot.com/2006/09/why-i-dont-like-shared-memory.html.
[7]
Armstrong, J., Programming Erlang: Software for a Concurrent World. 2007. Pragmatic Bookshelf.
[8]
J. Armstrong, Erlang - a survey of the language and its industrial applications, in: INAP'96 - The 9th Exhibitions and Symposium on Industrial Applications of Prolog, Hino, Tokyo, Japan, 1996.
[9]
Armstrong, J., The development of Erlang. In: Proceedings of the Second ACM SIGPLAN International Conference on Functional Programming, ACM, New York, NY, USA.
[10]
Bacon, D.F., Strom, R.E. and Tarafdar, A., Guava: a dialect of Java without data races. In: Proceedings of the 15th ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, ACM, New York, NY, USA.
[11]
Bal, H.E., Steiner, J.G. and Tanenbaum, A.S., Programming languages for distributed computing systems. ACM Comput. Surv. v21. 261-322.
[12]
Birka, A. and Ernst, M.D., A practical type system and language for reference immutability. In: Proceedings of the 19th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, ACM, New York, NY, USA.
[13]
Birman, K.P. and Joseph, T.A., Exploiting virtual synchrony in distributed systems. ACM SIGOPS Oper. Syst. Rev. v21. 123-138.
[14]
Birrell, A.D. and Nelson, B.J., Implementing remote procedure calls. ACM Trans. Comput. Syst. v2. 39-59.
[15]
R. Bjornson, N. Carriero, D. Gelernter, T. Mattson, D. Kaminsky, A. Sherman, Experience with Linda, Tech. Rep., Yale University, YALE/DCS/TR866B, 1991.
[16]
Bloch, J., Effective Java (The Java Series). 2008. second ed. Prentice Hall PTR, Upper Saddle River, NJ, USA.
[17]
Bocchino Jr., R.L., Adve, V.S., Adve, S.V. and Snir, M., Parallel programming must be deterministic by default. In: Proceedings of the 1st USENIX Conference on Hot Topics in Parallelism, USENIX Association, Berkeley, CA, USA.
[18]
Bocchino Jr., R., Heumann, S., Honarmand, N., Adve, S.V., Adve, V.S., Welc, A. and Shpeisman, T., Safe nondeterminism in a deterministic-by-default parallel language. In: Proceedings of the 38th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, ACM, New York, NY, USA.
[19]
Boehm, H.-J., Transactional memory should be an implementation technique, not a programming interface. In: Proceedings of the First USENIX Conference on Hot Topics in Parallelism, USENIX Association, Berkeley, CA, USA.
[20]
Boehm, H.-J., Threads cannot be implemented as a library. In: Proceedings of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation, ACM, New York, NY, USA.
[21]
Boehm, H.-J. and Adve, S.V., You don't know jack about shared variables or memory models. Comm. ACM. v55 i2. 48-54.
[22]
Boyapati, C., Lee, R. and Rinard, M., Ownership types for safe programming: preventing data races and deadlocks. In: Proceedings of the 17th ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, ACM, New York, NY, USA.
[23]
Boyland, J., Noble, J. and Retert, W., Capabilities for sharing: A generalisation of uniqueness and read-only. In: Proceedings of the 15th European Conference on Object-Oriented Programming, Springer-Verlag, London, UK, UK.
[24]
P. Bright, IBM's new transactional memory: make-or-break time for multithreaded revolution, Website (August 2011). URL http://arstechnica.com/hardware/news/2011/08/ibms-new-transactional-memory-make-or-break-time-for-multithreaded-revolution.ars.
[25]
Briot, J.-P., Guerraoui, R. and Lohr, K.-P., Concurrency and distribution in object-oriented programming. ACM Comput. Surv. v30 i3. 291-329.
[26]
Buhr, P.A., Fortier, M. and Coffin, M.H., Monitor classification. ACM Comput. Surv. v27. 63-107.
[27]
Buhr, P.A. and Harji, A.S., Implicit-signal monitors. ACM Trans. Program. Lang. Syst. v27. 1270-1343.
[28]
Burke, M.G., Knobe, K., Newton, R. and Sarkar, V., Concurrent collections programming model. In: Padua, D. (Ed.), Encyclopedia of Parallel Computing, Springer, US. pp. 364-371.
[29]
The specification of process synchronization by path expressions. In: Operating Systems, Proceedings of an International Symposium, Springer-Verlag, London, UK.
[30]
Carriero, N. and Gelernter, D., Linda in context. Comm. ACM. v32. 444-458.
[31]
Carriero, N. and Gelernter, D., Applications experience with Linda. In: Proceedings of the ACM/SIGPLAN Conference on Parallel Programming: Experience with Applications, Languages and Systems, ACM, New York, NY, USA.
[32]
Cascaval, C., Blundell, C., Michael, M., Cain, H.W., Wu, P., Chiras, S. and Chatterjee, S., Software transactional memory: why is it only a research toy?. ACM Queue. v6 i5. 46-58.
[33]
Clarke, D.G., Potter, J.M. and Noble, J., Ownership types for flexible alias protection. In: Proceedings of the 13th ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, ACM, New York, NY, USA.
[34]
Costa, P., Mottola, L., Murphy, A.L. and Picco, G.P., TeenyLIME: transiently shared tuple space middleware for wireless sensor networks. In: Proceedings of the International Workshop on Middleware for Sensor Networks, ACM, New York, NY, USA.
[35]
Curino, C., Giani, M., Giorgetta, M., Giusti, A., Murphy, A.L. and Picco, G.P., TinyLIME: bridging mobile and sensor networks through middleware. In: Proceedings of the Third IEEE International Conference on Pervasive Computing and Communications, IEEE Computer Society, Washington, DC, USA.
[36]
Damron, P., Fedorova, A., Lev, Y., Luchangco, V., Moir, M. and Nussbaum, D., Hybrid transactional memory. In: Proceedings of the 12th International Conference on Architectural Support for Programming Languages and Operating Systems, ACM, New York, NY, USA.
[37]
de Moura, A.L. and Ierusalimschy, R., Revisiting coroutines. ACM Trans. Program. Lang. Syst. v31 i2. 6:1-6:31.
[38]
Dice, D. and Shavit, N., Understanding tradeoffs in software transactional memory. In: Proceedings of the International Symposium on Code Generation and Optimization, IEEE Computer Society, Washington, DC, USA.
[39]
Dijkstra, E.W., The structure of THE - multiprogramming system. Comm. ACM. v11. 341-346.
[40]
Dijkstra, E.W., Guarded commands, nondeterminacy and formal derivation of programs. Comm. ACM. v18 i8. 453-457.
[41]
Dragojević, A., Felber, P., Gramoli, V. and Guerraoui, R., Why STM can be more than a research toy. Comm. ACM. v54 i4. 70-77.
[42]
R. Ennals, Software Transactional Memory Should not be Obstruction-free, Tech. Rep. IRC-TR-06-052, Intel Research Cambridge Tech. Report (January 2006). URL http://www.cs.wisc.edu/trans-memory/misc-papers/052_Rob_Ennals.pdf.
[43]
A.B. Ericsson, Erlang/OTP System Documentation, erlang/OTP System Documentation 5.8.5, October 2011.
[44]
N. Ford, Functional thinking: immutability - make Java code more functional by changing less (July 2011). URL http://www.ibm.com/developerworks/java/library/j-ft4.
[45]
Foster, J.S., Fähndrich, M. and Aiken, A., A theory of type qualifiers. In: Proceedings of the ACM SIGPLAN 1999 Conference on Programming Language Design and Implementation, ACM, New York, NY, USA.
[46]
Freeman, E., Arnold, K. and Hupfer, S., JavaSpaces Principles, Patterns, and Practice. 1999. first ed. Addison-Wesley Longman Ltd., Essex, UK, UK.
[47]
Gajinov, V., Zyulkyarov, F., Unsal, O.S., Cristal, A., Ayguade, E., Harris, T. and Valero, M., QuakeTM: parallelizing a complex sequential application using transactional memory. In: Proceedings of the 23rd International Conference on Supercomputing, ACM, New York, NY, USA.
[48]
Gelernter, D., Generative communication in Linda. ACM Trans. Program. Lang. Syst. v7. 80-112.
[49]
Gelernter, D. and Carriero, N., Coordination languages and their significance. Comm. ACM. v35. 97-107.
[50]
B. Goetz, Java theory and practice: to mutate or not to mutate?-Immutable objects can greatly simplify your life (February 2003). URL http://www.ibm.com/developerworks/java/library/j-jtp02183.
[51]
Gorlatch, S., Send-receive considered harmful: Myths and realities of message passing. ACM Trans. Program. Lang. Syst. v26. 47-56.
[52]
J. Gray, The transaction concept: virtues and limitations (invited paper), in: Proceedings of the seventh International Conference on Very Large Data Bases, VLDB'1981, vol. 7, VLDB Endowment, 1981.
[53]
Gropp, W., Lusk, E.L. and Skjellum, A., Using MPI: Portable Parallel Programming with the Message Passing Interface. 1999. second ed. MIT Press.
[54]
The transactional memory/garbage collection analogy. In: Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, ACM, New York, NY, USA.
[55]
Haack, C. and Poll, E., Type-based object immutability with flexible initialization. In: LNCS, vol. 5653. Springer.
[56]
C. Haack, E. Poll, J. Schäfer, A. Schubert, Immutable objects in Java, Dept. of Computer Science ICIS-R06010, Radboud University Nijmegen, 2006.
[57]
Haack, C., Poll, E., Schäfer, J. and Schubert, A., Immutable objects for a Java-like language. In: Nicola, R.D. (Ed.), LNCS, vol. 4421. Springer.
[58]
Haddon, B.K., Nested monitor calls. ACM SIGOPS Oper. Syst. Rev. v11. 18-23.
[59]
Haller, P. and Odersky, M., Event-based programming without inversion of control. In: Springer LNCS,
[60]
Hansen, P.B., Concurrent programming concepts. ACM Comput. Surv. v5. 223-245.
[61]
Hansen, P.B., Structured multiprogramming. Comm. ACM. v15. 574-578.
[62]
Hansen, P.B., An outline of a course on operating system principles. In: Hoare, C.A.R., Perrott, R.H. (Eds.), A.P.I.C. Studies in Data Processing, vol. 9. Academic Press, London.
[63]
Hansen, P.B., Operating System Principles. 1973. Prentice-Hall, Inc., Upper Saddle River, NJ, USA.
[64]
Hansen, P.B., Monitors and Concurrent Pascal: a personal history. In: The second ACM SIGPLAN Conference on History of Programming Languages, HOPL-II, ACM, New York, NY, USA.
[65]
Hansen, P.B., The programming language Concurrent Pascal. IEEE Trans. Softw. Eng. v1 i2. 199-207.
[66]
Hansen, P.B., Java's insecure parallelism. ACM SIGPLAN Notices. v34. 38-45.
[67]
Hansen, P.B., The invention of concurrent programming. In: The Origin of Concurrent Programming, Springer-Verlag New York, Inc., New York, NY, USA. pp. 3-61.
[68]
P.B. Hansen, A programming methodology for operating system design, in: IFIP Congress, 1974.
[69]
Harris, T., Language constructs for transactional memory. In: Proceedings of the 36th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, ACM, New York, NY, USA.
[70]
Harris, T., Larus, J. and Rajwar, R., Transactional Memory. 2010. second ed. Morgan and Claypool Publishers.
[71]
Harris, T., Marlow, S., Peyton-Jones, S. and Herlihy, M., Composable memory transactions. In: Proceedings of the Tenth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, ACM, New York, NY, USA.
[72]
Herlihy, M., Wait-free synchronization. ACM Trans. Program. Lang. Syst. v13. 124-149.
[73]
Herlihy, M., Technical perspective: Highly concurrent data structures. Comm. ACM. v52. 99
[74]
Herlihy, M., Luchangco, V., Martin, P. and Moir, M., Nonblocking memory management support for dynamic-sized data structures. ACM Trans. Program. Lang. Syst. v23. 146-196.
[75]
Herlihy, M., Luchangco, V., Moir, M. and Scherer III, W.N., Software transactional memory for dynamic-sized data structures. In: Proceedings of the Twenty-second Annual Symposium on Principles of Distributed Computing, ACM, New York, NY, USA.
[76]
Herlihy, M. and Moss, J.E.B., Transactional memory: architectural support for lock-free data structures. In: Proceedings of the 20th Annual International Symposium on Computer Architecture, ACM, New York, NY, USA.
[77]
Hoare, C.A.R., Towards a theory of parallel programming. In: Hoare, C.A.R., Perrott, R.H. (Eds.), A.P.I.C. Studies in Data Processing, vol. 9. Academic Press, London.
[78]
Hoare, C.A.R., Monitors: an operating system structuring concept. Comm. ACM. v17. 549-557.
[79]
Howard, J.H., Signaling in monitors. In: Proceedings of the 2nd International Conference on Software Engineering, IEEE Computer Society Press, Los Alamitos, CA, USA.
[80]
Johansson, E., Sagonas, K. and Wilhelmsson, J., Heap architectures for concurrent languages using message passing. In: Proceedings of the 3rd International Symposium on Memory Management, ACM, New York, NY, USA.
[81]
Jones, S.P., Beautiful concurrency. In: Wilson, G., Oram, A. (Eds.), Beautiful Code: Leading Programmers Explain How They Think, OReilly Media, Inc. pp. 385-406.
[82]
A. Kauppi, Lualanes - multithreading in Lua, Website (2009). URL http://kotisivu.dnainternet.net/askok/bin/lanes/.
[83]
Keedy, J.L., On structuring operating systems with monitors. ACM SIGOPS Oper. Syst. Rev. v13. 5-9.
[84]
Kessels, J.L.W., An alternative to event queues for synchronization in monitors. Comm. ACM. v20. 500-503.
[85]
Kotulski, L., About the semantic nested monitor calls. ACM SIGPLAN Notices. v22. 80-82.
[86]
Lauer, H.C. and Needham, R.M., On the duality of operating system structures. ACM SIGOPS Oper. Syst. Rev. v13. 3-19.
[87]
Lee, E.A., Disciplined Message Passing, Tech. Rep. January 2009. EECS Dept. University of California Berkeley.
[88]
Lee, E.A., The problem with threads. IEEE Computer. v39 i5. 33-42.
[89]
Y. Lev, J.-W. Maessen, Toward a safer interaction with transactional memory by tracking object visibility, in: Proceedings, Workshop on Synchronization and Concurrency in Object-Oriented Languages, San Diego, CA, 2005.
[90]
The problem of nested monitor calls. ACM SIGOPS Oper. Syst. Rev. v11. 5-7.
[91]
Martin, M., Blundell, C. and Lewis, E., Subtleties of transactional memory atomicity semantics. IEEE Comput. Architect. Lett. v5 i2.
[92]
S.W. McLaughry, P. Wyckoff, T Spaces: the next wave, in: Proceedings of the Thirty-second Annual Hawaii International Conference on System Sciences, vol. 8, HICSS'99, IEEE Computer Society, Washington, DC, USA, 1999.
[93]
Message Passing Interface Forum, MPI: A Message-Passing Interface Standard, version 3.0 (September 21, 2012).
[94]
Michael, M.M., Hazard pointers: Safe memory reclamation for lock-free objects. IEEE Trans. Parallel Distrib. Syst. v15. 491-504.
[95]
Moss, J.E.B. and Hosking, A.L., Nested transactional memory: model and architecture sketches. Sci. Comput. Program. v63 i2. 186-201.
[96]
Odersky, M., Altherr, P., Cremet, V., Dragos, I., Dubochet, G., Emir, B., McDirmid, S., Micheloud, S., Mihaylov, N., Schinz, M., Stenman, E., Spoon, L. and Zenger, M., An Overview of the Scala Programming Language, Tech. Rep., EPFL Lausanne, Switzerland. 2004.
[97]
J. Ousterhout, Why threads are a bad idea (for most purposes), Presentation given at the 1996 USENIX Annual Technical Conference.
[98]
Parnas, D.L., The non-problem of nested monitor calls. ACM SIGOPS Oper. Syst. Rev. v12. 12-18.
[99]
Pechtchanski, I. and Sarkar, V., Immutability specification and its applications. Concurrency and Computation: Practice and Experience. v17 i5-6. 639-662.
[100]
Peyton Jones, S., Gordon, A. and Finne, S., Concurrent Haskell. In: Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, New York, NY, USA, ACM.
[101]
Picco, G.P., Murphy, A.L. and Roman, G.-C., LIME: Linda meets mobility. In: Proceedings of the 21st International Conference on Software Engineering, ACM, New York, NY, USA.
[102]
Pierce, B.C., Types and Programming Languages. 2002. MIT Press, Cambridge, MA, USA.
[103]
Rajwar, R. and Goodman, J.R., Transactional lock-free execution of lock-based programs. In: Proceedings of the 10th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS-X, ACM, New York, NY, USA.
[104]
Rajwar, R., Herlihy, M. and Lai, K., Virtualizing transactional memory. In: Proceedings of the 32nd Annual International Symposium on Computer Architecture, IEEE Computer Society, Washington, DC, USA.
[105]
J. Reinders, Transactional synchronization in Haswell, Website (February 2012). URL http://software.intel.com/en-us/blogs/2012/02/07/transactional-synchronization-in-haswell/.
[106]
Rinda - a module to implement the Linda distributed computing paradigm in Ruby, Website, 2011. URL http://www.ruby-doc.org/stdlib-1.9.3/libdoc/rinda/rdoc/Rinda.html.
[107]
Z.B. Rui Zhang, W.N. Scherer III, Composability for application-specific transactional optimizations, in: Proceedings of the 5th ACM SIGPLAN Workshop on Transactional Computing, TRANSACT 2010, 2010.
[108]
Schilling, J.L., Dynamically-valued constants: an underused language feature. ACM SIGPLAN Notices. v30. 13-20.
[109]
Scientific Computing Associates Inc., Linda User Guide (September 2005). URL http://www.lindaspaces.com/downloads/lindamanual.pdf.
[110]
Shavit, N. and Touitou, D., Software transactional memory. In: Proceedings of the Fourteenth Annual ACM Symposium on Principles of Distributed Computing, ACM, New York, NY, USA.
[111]
Sutter, H., The trouble with locks. Dr. Dobb's Journal. iMarch.
[112]
Sutter, H., Lock-free code: A false sense of security. Dr. Dobb's Journal. iSeptember.
[113]
Sutter, H. and Larus, J., Software and the concurrency revolution. ACM Queue. v3. 54-62.
[114]
TCP Linda case studies, last accessed September 2013. URL http://www.lindaspaces.com/casestudies/index.html.
[115]
E. Vallejo, T. Harris, A. Cristal, O. Unsal, M. Valero, Hybrid transactional memory to accelerate safe lock-based transactions, in: 3rd ACM SIGPLAN Workshop on Transactional Computing, TRANSACT 2008, Salt Lake City, UT, USA, 2008.
[116]
R. von Behren, J. Condit, E. Brewer, Why events are a bad idea (for high-concurrency servers), in: Proceedings of the 9th Conference on Hot Topics in Operating Systems-Volume 9, USENIX Association, Berkeley, CA, USA, 2003.
[117]
G.C. Wells, A programmable matching engine for application development in Linda, Ph.D. Thesis, University of Bristol, July 2001.
[118]
G. Wells, Coordination languages: back to the future with Linda, in: Proceedings of WCAT'05, 2005.
[119]
G.C. Wells, New and improved: Linda in Java, in: Proceedings of the 3rd International Symposium on Principles and Practice of Programming in Java, PPPJ'04, Trinity College Dublin, 2004.
[120]
Wells, G.C., Chalmers, A.G. and Clayton, P.G., Linda implementations in Java for concurrent systems: research articles. Concurrency and Computation: Practice and Experience. v16. 1005-1022.
[121]
Wells, G., Clayton, P. and Chalmers, A.G., A comparison of Linda implementations in java. In: Welch, P.H., Bakkers, A.W.P. (Eds.), Communicating Process Architectures 2000,
[122]
Wettstein, H., The problem of nested monitor calls revisited. ACM SIGOPS Oper. Syst. Rev. v12. 19-23.
[123]
A. Wilkinson, PyLinda-an implementation of the tuplespace based distributed computing system, Website (2011). URL http://pypi.python.org/pypi/linda/0.5.1.
[124]
Yoo, R.M., Ni, Y., Welc, A., Saha, B., Adl-Tabatabai, A.-R. and Lee, H.-H.S., Kicking the tires of software transactional memory: why the going gets tough. In: Proceedings of the Twentieth Annual Symposium on Parallelism in Algorithms and Architectures, ACM, New York, NY, USA.
[125]
S.E. Zenith, Process interaction models, Ph.D. Thesis, Ecole Nationale Supérieure des Mines de Paris, Centre de Recherche en Informatique-35 rue Saint-Honore 77305-Fontainebleau-France (1992).
[126]
Zibin, Y., Potanin, A., Ali, M., Artzi, S., Kiezun, A. and Ernst, M.D., Object and reference immutability using Java generics. In: Proceedings of the the 6th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on The Foundations of Software Engineering, ACM, New York, NY, USA.

Index Terms

  1. A survey of support for structured communication in concurrency control models
      Index terms have been assigned to the content through auto-classification.

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image Journal of Parallel and Distributed Computing
      Journal of Parallel and Distributed Computing  Volume 74, Issue 4
      April, 2014
      89 pages

      Publisher

      Academic Press, Inc.

      United States

      Publication History

      Published: 01 April 2014

      Author Tags

      1. Communication
      2. Concurrency
      3. Model
      4. Structured
      5. Survey

      Qualifiers

      • Article

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • 0
        Total Citations
      • 0
        Total Downloads
      • Downloads (Last 12 months)0
      • Downloads (Last 6 weeks)0
      Reflects downloads up to 10 Sep 2024

      Other Metrics

      Citations

      View Options

      View options

      Get Access

      Login options

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media