Skip to main content
Log in

ElasticActor: An Actor System with Automatic Granularity Adjustment

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

The actor model has gained significant popularity in recent years, because its high-level abstraction facilitates the construction of massive concurrent distributed systems, e.g. cloud applications. However, building an efficient actor system is a challenging task. In particular, the concurrency granularity has a critical impact on the performance of actor systems. Moreover, the best granularity depends on both the available hardware and the characteristics of the workload. This paper proposes a new actor system, ElasticActor, that automatically adjusts the granularity of parallel execution. In ElasticActor, all actors are assigned to a number of actor stations. Actors in the same station share a mailbox and constitute the minimum scheduling unit. Therefore, the runtime system can adjust the granularity by changing the number of actor stations in the system. More specifically, we model the average latency and derive a closed-form formula to compute the best number of stations. The experimental results show that ElasticActor outperforms two state-of-the-art actor systems, CAF and Orleans. It gains up to 1.3\(\times \) throughput and decreases the average latency by 0.75\(\times \) thanks to the granularity adjustment.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6

Similar content being viewed by others

Notes

  1. The testing platform is described in Sect. 5.

  2. Similar phenomenon is observed in CAF. The average latency with default granularity is 1.54\(\times \) longer than the one with the optimal granularity.

  3. The implementation of CAF is very efficient, and it outperforms many other actor systems such as Charm++ and Akka [17].

References

  1. Hewitt, C., Peter, B., Richard, S: A universal modular ACTOR formalism for artificial intelligence. In: International Joint Conference on Artificial Intelligence (1973)

  2. Erlang. http://www.erlang.org/

  3. C++ Actor Framework. http://www.actor-framework.org/

  4. AKKA. http://akka.io/

  5. Orleans. https://www.microsoft.com/en-us/research/project/orleans-virtual-actors

  6. Bernstein, P., Bykov, S., Geller, A., Kliot, G., Thelin, J: Orleans: distributed virtual actors for programmability and scalability. MSR-TR-2014-41 (2014)

  7. Bernstein, P.A., Dashti, M., Kiefer, T., Maier, D: Indexing in an actor-oriented database. In: CIDR (2017)

  8. Wu, C., Faleiro, J.M., Lin, Y., Hellerstein, J.M.: Anna: a KVS for any scale. In: 34th IEEE International Conference on Data Engineering (2018)

  9. Francesquini, E., Goldman, A., Méhaut, J.F.: NUMA-Aware runtime environment for the actor model. In: 2013 42nd International Conference on Parallel Processing, ICPP’13, pp. 250–259 (2013)

  10. Newell, A., Kliot, G., Menache, I., Kliot, G., Menache, I., Gopalan, A., Akiyama, S., Silberstein, M: Optimizing distributed actor systems for dynamic interactive services. In: Eleventh European Conference on Computer Systems, EuroSys’16 (2016)

  11. Desell, T., Varela, C.A.: A performance and scalability analysis of actor message passing and migration in SALSA Lite. In: AGERE!’15 (2015)

  12. Vishnevskii, V.: Mathematical methods to study the polling systems. Autom. Remote Control 67, 173–220 (2006)

    Article  MathSciNet  MATH  Google Scholar 

  13. Chen, H., Yao, D.: Fundamentals of Queuing Networks: Performance, Asymptotics, and Optimization. Springer, Berlin (2013)

    Google Scholar 

  14. Takagi H.: Analysis and application of polling models. In: Haring G., Lindemann C., Reiser M. (eds.) Performance evaluation: Origins and directions. Lecture Notes in Computer Science, vol. 1769. Springer, Berlin, Heidelberg (2000)

  15. Sanghavi, S., Hajek, B., Massoulie, L.: Gossiping with multiple messages. IEEE Trans. Inf. Theory 53, 4640–4654 (2007)

    Article  MathSciNet  MATH  Google Scholar 

  16. Tribastone, M., Mayer, P., Wirsing, M.: Performance prediction of service-oriented systems with layered queuing networks. In: International Symposium on Leveraging Applications of Formal Methods, Verification and Validation. Springer, Berlin, pp. 51–65 (2010)

  17. Charousset, D., Hiesgen, R., Schmidt, T.C.: Revisiting actor programming in C++. Comput. Sci. 45, 105–131 (2015)

    Google Scholar 

  18. OceanStor. http://e.huawei.com/en/products/cloud-computing-dc/storage/massive-storage/9000

  19. Benchmark games. https://benchmarksgame.alioth.debian.org/

  20. Karmani, R.K., Shali, A., Agha, G.: Actor frameworks for the JVM platform: a comparative analysis. In: Proceedings of the 7th International Conference on Principles and Practice of Programming in Java. ACM (2009)

  21. Salvaneschi, G., Carlo, G., Matteo, P.: ContextErlang: introducing context-oriented programming in the actor model. In: Proceedings of the 11th Annual International Conference on Aspect-Oriented Software Development. ACM (2012)

  22. Tallent, M.-C.: Effective performance measurement and analysis of multithreaded applications. In: PPoPP’09. New York, pp. 229–240 (2009)

  23. Gordon, M.I., Thies, W., Amarasinghe, S.: Exploiting coarse-grained task, data, and pipeline parallelism in stream programs. ACM SIGOPS Oper. Syst. Rev. 34, 151–162 (2006)

    Article  Google Scholar 

  24. Yan, Y.: Adaptively scheduling parallel loops in distributed shared-memory systems. IEEE TPDS 8, 70–81 (1997)

    Google Scholar 

  25. Acar, U.A., Chargueraud, A., Rainey, M.: Oracle scheduling: controlling granularity in implicitly parallel languages. ACM Sigplan Not. 46(10), 499–518 (2011)

    Article  MATH  Google Scholar 

  26. Dally, B.: Power, programmability, and granularity: the challenges of exascale computing. In: 2011 IEEE International Test Conference. IEEE (2011)

Download references

Acknowledgements

We would like to thank the anonymous reviewers for their comments and valuable feedback. Special thanks to Chen Ding for his comments and suggestions which have helped the development and presentation of the paper. The research is supported by the National Key R&D Program of China (Grant No. 2016YFB1000402), National Natural Science Foundation of China (Grant Nos. 61521092, 61802368, 61432018, 61332009).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Peng Zhao.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Zhao, P., Liu, L., Cao, W. et al. ElasticActor: An Actor System with Automatic Granularity Adjustment. Int J Parallel Prog 47, 520–534 (2019). https://doi.org/10.1007/s10766-018-0613-7

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10766-018-0613-7

Keywords

Navigation