Skip to main content

SALSA Lite: A Hash-Based Actor Runtime for Efficient Local Concurrency

  • Chapter
Concurrent Objects and Beyond

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 8665))

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.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Hewitt, C.: Viewing control structures as patterns of passing messages. Artificial Intelligence 8, 323–364 (1977)

    Article  Google Scholar 

  2. Agha, G.: Actors: a model of concurrent computation in distributed systems. MIT Press, Cambridge (1986)

    Google Scholar 

  3. Kim, W., Agha, G.: Efficient Support of Location Transparency in Concurrent Object-Oriented Programming Languages. In: Proceedings of Supercomputing 1995, pp. 39–48 (1995)

    Google Scholar 

  4. Agha, G., Jamali, N.: Concurrent programming for distributed artificial intelligence. In: Weiss, G. (ed.) Multiagent Systems: A Modern Approach to DAI. MIT Press (1999)

    Google Scholar 

  5. Varela, C., Agha, G.: Programming dynamically reconfigurable open systems with SALSA. SIGPLAN Not. 36, 20–34 (2001)

    Article  Google Scholar 

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

  7. Miller, M.S., Shapiro, J.S.: Robust composition: Towards a unified approach to access control and concurrency control. PhD thesis, Johns Hopkins University (2006)

    Google Scholar 

  8. Miller, M., Tribble, E., Shapiro, J.: Concurrency among strangers. Trustworthy Global Computing, 195–229 (2005)

    Google Scholar 

  9. Armstrong, J.: Programming Erlang: Software for a Concurrent World. Pragmatic Bookshelf (2007)

    Google Scholar 

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

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

  12. Vermeersch, R.: Concurrency in Erlang and Scala: The actor model (2009), http://ruben.savanne.be/articles/concurrency-in-erlang-scala

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

    Google Scholar 

  14. Schmidt, D.C.T.C., Hiesgen, R., Wählisch, M.: Native actors–a scalable software platform for distributed, heterogeneous environments (2013)

    Google Scholar 

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

    Google Scholar 

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

    Article  MathSciNet  MATH  Google Scholar 

  17. Jang, M.W.: The Actor Architecture Manual. Department of Computer Science. University of Illinois at Urbana-Champaign (2004)

    Google Scholar 

  18. Astley, M.: The Actor Foundry: A Java-based Actor Programming Environment. Open Systems Laboratory. University of Illinois at Urbana-Champaign (1998–1999)

    Google Scholar 

  19. Rougemaille, S., Arcangeli, J.P., Migeon, F.: Javact: a Java middleware for mobile adaptive agents (2008)

    Google Scholar 

  20. Rettig, M.: Jetlang (2008–2009), http://code.google.com/p/jetlang/

  21. Valois, J.D.: Lock-free data structures (1996)

    Google Scholar 

  22. Alexandrescu, A.: Lock-free data structures. C/C++ User Journal (2004)

    Google Scholar 

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

    Chapter  Google Scholar 

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

    Article  Google Scholar 

  25. Isenhour, P.: Faster deep copies of java objects, http://javatechniques.com/blog/faster-deep-copies-of-java-objects/ (accessed: February 26, 2013)

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

    Chapter  Google Scholar 

  27. Kafura, D., Washabaugh, D., Nelson, J.: Garbage collection of actors. SIGPLAN Not. 25, 126–134 (1990)

    Article  Google Scholar 

  28. Wang, W.: Distributed Garbage Collection for Large-Scale Mobile Actor Systems. PhD thesis, Rensselaer Polytechnic Institute (2006)

    Google Scholar 

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

    Chapter  Google Scholar 

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

    Google Scholar 

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

    Chapter  Google Scholar 

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

    Article  Google Scholar 

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

    Google Scholar 

  34. Desell, T., Maghraoui, K.E., Varela, C.A.: Malleable applications for scalable high performance computing. Cluster Computing, 323–337 (2007)

    Google Scholar 

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

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

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

Publish with us

Policies and ethics