Abstract
As modern computer processors continue becoming more parallel, the actor model plays an increasingly important role in helping develop correct concurrent systems. In this paper, we consider efficient runtime strategies for non-distributed actor programming languages. While the focus is on a non-distributed implementation, it serves as a platform for a future efficient distributed implementation. Actors extend the object model by combining state and behavior with a thread of control, which can significantly simplify concurrent programming. Further, with asynchronous communication, no shared memory, and the fact an actor only processes one message at a time, it is possible to easily implement transparent distributed message passing and actor mobility. This paper discusses SALSA Lite, a completely re-designed actor runtime system engineered to maximize performance. The new runtime consists of a highly optimized core for lightweight actor creation, message passing, and message processing, which is used to implement more advanced coordination constructs. This new runtime is novel in two ways. First, by default the runtime automatically maps the lightweight actors to threads, allowing the number of threads used by a program to be specified at runtime transparently, without any changes to the code. Further, language constructs allow programmers to have first class control over how actors are mapped to threads (creating new threads if needed). Second, the runtime directly maps actor garbage collection to object garbage collection, allowing non-distributed SALSA programs to use Java’s garbage collection “for free”. This runtime is shown to have comparable or better performance for basic actor constructs (message passing and actor creation) than other popular actor languages: Erlang, Scala, and Kilim.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Hewitt, C.: Viewing control structures as patterns of passing messages. Artificial Intelligence 8, 323–364 (1977)
Agha, G.: Actors: a model of concurrent computation in distributed systems. MIT Press, Cambridge (1986)
Kim, W., Agha, G.: Efficient Support of Location Transparency in Concurrent Object-Oriented Programming Languages. In: Proceedings of Supercomputing 1995, pp. 39–48 (1995)
Agha, G., Jamali, N.: Concurrent programming for distributed artificial intelligence. In: Weiss, G. (ed.) Multiagent Systems: A Modern Approach to DAI. MIT Press (1999)
Varela, C., Agha, G.: Programming dynamically reconfigurable open systems with SALSA. SIGPLAN Not. 36, 20–34 (2001)
Varela, C.: Worldwide Computing with Universal Actors: Linguistic Abstractions for Naming, Migration, and Coordination. PhD thesis, U. of Illinois at Urbana-Champaign (2001), http://osl.cs.uiuc.edu/Theses/varela-phd.pdf
Miller, M.S., Shapiro, J.S.: Robust composition: Towards a unified approach to access control and concurrency control. PhD thesis, Johns Hopkins University (2006)
Miller, M., Tribble, E., Shapiro, J.: Concurrency among strangers. Trustworthy Global Computing, 195–229 (2005)
Armstrong, J.: Programming Erlang: Software for a Concurrent World. Pragmatic Bookshelf (2007)
Srinivasan, S., Mycroft, A.: Kilim: Isolation-typed actors for Java. In: Vitek, J. (ed.) ECOOP 2008. LNCS, vol. 5142, pp. 104–128. Springer, Heidelberg (2008)
Haller, P., Odersky, M.: Actors that unify threads and events. In: Murphy, A.L., Vitek, J. (eds.) COORDINATION 2007. LNCS, vol. 4467, pp. 171–190. Springer, Heidelberg (2007)
Vermeersch, R.: Concurrency in Erlang and Scala: The actor model (2009), http://ruben.savanne.be/articles/concurrency-in-erlang-scala
Varela, C., Agha, G.: What after Java? From Objects to Actors. Computer Networks and ISDN Systems: The International J. of Computer Telecommunications and Networking 30, 573–577 (1998); Proceedings of the Seventh International Conference on The World Wide Web (WWW7), Brisbane, Australia
Schmidt, D.C.T.C., Hiesgen, R., Wählisch, M.: Native actors–a scalable software platform for distributed, heterogeneous environments (2013)
Karmani, R.K., Shali, A., Agha, G.: Actor frameworks for the JVM platform: a comparative analysis. In: PPPJ 2009: Proceedings of the 7th International Conference on Principles and Practice of Programming in Java, pp. 11–20. ACM, New York (2009)
Agha, G.A., Mason, I.A., Smith, S.F., Talcott, C.L.: A foundation for actor computation. Journal of Functional Programming 7, 1–72 (1997)
Jang, M.W.: The Actor Architecture Manual. Department of Computer Science. University of Illinois at Urbana-Champaign (2004)
Astley, M.: The Actor Foundry: A Java-based Actor Programming Environment. Open Systems Laboratory. University of Illinois at Urbana-Champaign (1998–1999)
Rougemaille, S., Arcangeli, J.P., Migeon, F.: Javact: a Java middleware for mobile adaptive agents (2008)
Rettig, M.: Jetlang (2008–2009), http://code.google.com/p/jetlang/
Valois, J.D.: Lock-free data structures (1996)
Alexandrescu, A.: Lock-free data structures. C/C++ User Journal (2004)
Herlihy, M., Luchangco, V., Moir, M.: The repeat offender problem: A mechanism for supporting dynamic-sized lock-free data structures. In: Malkhi, D. (ed.) DISC 2002. LNCS, vol. 2508, pp. 339–353. Springer, Heidelberg (2002)
Herlihy, M., Luchangco, V., Martin, P., Moir, M.: Nonblocking memory management support for dynamic-sized data structures. ACM Transactions on Computer Systems (TOCS) 23, 146–196 (2005)
Isenhour, P.: Faster deep copies of java objects, http://javatechniques.com/blog/faster-deep-copies-of-java-objects/ (accessed: February 26, 2013)
Armstrong, J., Virding, R.: One pass real-time generational mark-sweep garbage collection. In: Baker, H.G. (ed.) IWMM-GIAE 1995. LNCS, vol. 986, pp. 313–322. Springer, Heidelberg (1995)
Kafura, D., Washabaugh, D., Nelson, J.: Garbage collection of actors. SIGPLAN Not. 25, 126–134 (1990)
Wang, W.: Distributed Garbage Collection for Large-Scale Mobile Actor Systems. PhD thesis, Rensselaer Polytechnic Institute (2006)
Wang, W.-J., Varela, C.A.: Distributed garbage collection for mobile actor systems: The pseudo root approach. In: Chung, Y.-C., Moreira, J.E. (eds.) GPC 2006. LNCS, vol. 3947, pp. 360–372. Springer, Heidelberg (2006)
Kamada, T., Matsuoka, S., Yonezawa, A.: Efficient parallel global garbage collection on massively parallel computers. In: Proceedings of the 1994 Conference on Supercomputing, pp. 79–88. IEEE Computer Society Press (1994)
Wang, W.-J., Varela, C., Hsu, F.-H., Tang, C.-H.: Actor garbage collection using vertex-preserving actor-to-object graph transformations. In: Bellavista, P., Chang, R.-S., Chao, H.-C., Lin, S.-F., Sloot, P.M.A. (eds.) GPC 2010. LNCS, vol. 6104, pp. 244–255. Springer, Heidelberg (2010)
Taura, K., Matsuoka, S., Yonezawa, A.: An efficient implementation scheme of concurrent object-oriented languages on stock multicomputers. ACM SIGPLAN Notices 28, 218–228 (1993)
Plevyak, J., Karamcheti, V., Zhang, X., Chien, A.A.: A hybrid execution model for fine-grained languages on distributed memory multicomputers. In: Proceedings of the 1995 ACM/IEEE Conference on Supercomputing (CDROM), Supercomputing 1995. ACM, New York (1995)
Desell, T., Maghraoui, K.E., Varela, C.A.: Malleable applications for scalable high performance computing. Cluster Computing, 323–337 (2007)
Maghraoui, K.E., Desell, T., Szymanski, B.K., Varela, C.A.: The Internet Operating System: Middleware for adaptive distributed computing. International Journal of High Performance Computing Applications (IJHPCA), Special Issue on Scheduling Techniques for Large-Scale Distributed Platforms 20, 467–480 (2006)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Desell, T., Varela, C.A. (2014). SALSA Lite: A Hash-Based Actor Runtime for Efficient Local Concurrency. In: Agha, G., et al. Concurrent Objects and Beyond. Lecture Notes in Computer Science, vol 8665. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-44471-9_7
Download citation
DOI: https://doi.org/10.1007/978-3-662-44471-9_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-662-44470-2
Online ISBN: 978-3-662-44471-9
eBook Packages: Computer ScienceComputer Science (R0)