Improving the Performance of Actor-Based Programs Using a New Actor to Thread Association Technique

  • Fahimeh Rahemi
  • Ehsan KhamespanahEmail author
  • Ramtin Khosravi
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10853)


Finding the most efficient policy for the association of objects with threads is one of the main challenges in the deployment of concurrently executing objects, including actors. For the case of actor-based programs, libraries, frameworks, and languages provide fine tuning facilities for associating actors with threads. In practice, programmers use the default policy for the initial deployment of actors and the default policy is replaced with some other policies considering runtime behaviors of actors. Although this ad-hoc approach is widely used by programmers, it is tedious and time-consuming for large-scale applications. To reduce the time-consumption of the ad-hoc approach, a set of heuristics is proposed with the aim of balancing computations of actors across threads. This technique results in performance improvement; however, it relies on the static analysis of source codes and actors’ behaviors, ends in the inappropriate configuration of systems in distributed environments. In this paper, we illustrate conditions that the proposed heuristics do not work well and propose a new approach based on the runtime profile of actors for better association of actors with threads. We also show how this approach can be extended to a fully self-adaptive approach and illustrated its applicability using a set of case studies.


Actors Thread association Self-adaptive algorithm Runtime analysis 



The work on this paper has been supported in part by the project “Self-Adaptive Actors: SEADA” (nr. 163205-051) of the Icelandic Research Fund.


  1. 1.
    Agha, G.A.: ACTORS - A Model of Concurrent Computation in Distributed Systems. MIT Press Series in Artificial Intelligence. MIT Press, Cambridge (1990)Google Scholar
  2. 2.
    Hewitt, C.: Description and Theoretical Analysis (Using Schemata) of PLANNER: A Language for Proving Theorems and Manipulating Models in a Robot. MIT Artificial Intelligence Technical Report 258, Department of Computer Science, MIT, April 1972Google Scholar
  3. 3.
    Lieberman, H.: Thinking about lots of things at once without getting confused: parallelism in act i. Technical report, DTIC Document (1981)Google Scholar
  4. 4.
    Woelk, D.: Developing infosleuth agents using rosette: an actor based language. In: Intelligent Information Agents Workshop, CIKM 1995, pp. 1–2 (1995)Google Scholar
  5. 5.
    Armstrong, J.: Erlang. Commun. ACM 53(9), 68–75 (2010)CrossRefGoogle Scholar
  6. 6.
    Varela, C., Agha, G.: Programming dynamically reconfigurable open systems with salsa. ACM SIGPLAN Not. 36(12), 20–34 (2001)CrossRefGoogle Scholar
  7. 7.
    Lightbend Inc.: Akka.
  8. 8.
    Francesquini, E., Goldman, A., Méhaut, J.: Actor scheduling for multicore hierarchical memory platforms. In: Vinoski, S., Castro, L.M. (eds.) Proceedings of the Twelfth ACM SIGPLAN Erlang Workshop, Boston, Massachusetts, USA, 28 September 2013, pp. 51–62. ACM (2013)Google Scholar
  9. 9.
    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). Scholar
  10. 10.
    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). Scholar
  11. 11.
    Upadhyaya, G., Rajan, H.: An automatic actors to threads mapping technique for JVM-based actor frameworks. In: Boix, E.G., Haller, P., Ricci, A., Varela, C. (eds.) Proceedings of the 4th International Workshop on Programming based on Actors Agents & Decentralized Control, AGERE! 2014, Portland, OR, USA, 20 October 2014, pp. 29–41. ACM (2014)Google Scholar
  12. 12.
    Rajan, H.: Capsule-oriented programming. In: ICSE, vol. 2, pp. 611–614. IEEE Computer Society (2015)Google Scholar
  13. 13.
    Vernon, V.: Reactive Messaging Patterns with the Actor Model: Applications and Integration in Scala and Akka, 1st edn. Addison-Wesley Professional, Boston (2015)Google Scholar
  14. 14.
    Dean, J., Ghemawat, S.: Mapreduce: simplified data processing on large clusters. Commun. ACM 51(1), 107–113 (2008)CrossRefGoogle Scholar
  15. 15.
    White, T.: Hadoop - The Definitive Guide: Storage and Analysis at Internet Scale, 3rd edn., Revised and Updated. O’Reilly, Sebastopol (2012)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2018

Authors and Affiliations

  • Fahimeh Rahemi
    • 1
  • Ehsan Khamespanah
    • 1
    • 2
    Email author
  • Ramtin Khosravi
    • 1
  1. 1.School of Electrical and Computer EngineeringUniversity of TehranTehranIran
  2. 2.School of Computer ScienceReykjavik UniversityReykjavikIceland

Personalised recommendations