Advertisement

AErlang: Empowering Erlang with Attribute-Based Communication

  • Rocco De Nicola
  • Tan Duong
  • Omar Inverso
  • Catia Trubiani
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10319)

Abstract

Attribute-based communication provides a novel mechanism to dynamically select groups of communicating entities by relying on predicates over their exposed attributes. In this paper, we embed the basic primitives for attribute-based communication into the functional concurrent language Erlang to obtain what we call AErlang, for attribute Erlang. To evaluate our prototype in terms of performance overhead and scalability we consider solutions of the Stable Marriage Problem based on predicates over attributes and on the classical preference lists, and use them to compare the runtime performance of AErlang with those of Erlang and X10. The outcome of the comparison shows that the overhead introduced by the new communication primitives is acceptable, and our prototype can compete performance-wise with an ad-hoc parallel solution in X10.

Keywords

Attribute-based communication Erlang Concurrency Distributed programming Collective adaptive systems Stable marriage 

References

  1. 1.
    Agha, G.: Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge (1986)Google Scholar
  2. 2.
    Abd Alrahman, Y., De Nicola, R., Loreti, M.: On the power of attribute-based communication. In: Albert, E., Lanese, I. (eds.) FORTE 2016. LNCS, vol. 9688, pp. 1–18. Springer, Cham (2016). doi: 10.1007/978-3-319-39570-8_1 CrossRefGoogle Scholar
  3. 3.
    Alrahman, Y.A., Loreti, M.: AbaCuS: a run-time environment of the AbC calculus (2016). https://github.com/lazkany/AbC
  4. 4.
    Armstrong, J.: Programming Erlang: Software for a Concurrent World. Pragmatic Bookshelf (2007)Google Scholar
  5. 5.
    Armstrong, J.: Erlang. Commun. ACM 53(9), 68–75 (2010)CrossRefGoogle Scholar
  6. 6.
    Aronis, S., Papaspyrou, N., Roukounaki, K., Sagonas, K., Tsiouris, Y., Venetis, I.E.: A scalability benchmark suite for Erlang/OTP. In: Proceedings of the Eleventh ACM SIGPLAN Workshop on Erlang Workshop, pp. 33–42. ACM (2012)Google Scholar
  7. 7.
    Blau, S., Rooth, J., Axell, J., Hellstrand, F., Buhrgard, M., Westin, T., Wicklund, G.: AXD 301: A new generation ATM switching system. Comput. Networks 31(6), 559–582 (1999)CrossRefGoogle Scholar
  8. 8.
    Boudeville, O., Cesarini, F., Chechina, N., Lundin, K., Papaspyrou, N., Sagonas, K., Thompson, S., Trinder, P., Wiger, U.: RELEASE: a high-level paradigm for reliable large-scale server software. In: Loidl, H.-W., Peña, R. (eds.) TFP 2012. LNCS, vol. 7829, pp. 263–278. Springer, Heidelberg (2013). doi: 10.1007/978-3-642-40447-4_17 CrossRefGoogle Scholar
  9. 9.
    Cesari, L., Nicola, R., Pugliese, R., Puviani, M., Tiezzi, F., Zambonelli, F.: Formalising adaptation patterns for autonomic ensembles. In: Fiadeiro, J.L., Liu, Z., Xue, J. (eds.) FACS 2013. LNCS, vol. 8348, pp. 100–118. Springer, Cham (2014). doi: 10.1007/978-3-319-07602-7_8 Google Scholar
  10. 10.
    Charles, P., Grothoff, C., Saraswat, V., Donawa, C., Kielstra, A., Ebcioglu, K., Von Praun, C., Sarkar, V.: X10: an object-oriented approach to non-uniform cluster computing. In: ACM SIGPLAN Notices, vol. 40, pp. 519–538. ACM (2005)Google Scholar
  11. 11.
    De Nicola, R., Duong, T., Inverso, O., Trubiani, C.: AErlang at work. In: Steffen, B., Baier, C., Brand, M., Eder, J., Hinchey, M., Margaria, T. (eds.) SOFSEM 2017. LNCS, vol. 10139, pp. 485–497. Springer, Cham (2017). doi: 10.1007/978-3-319-51963-0_38 CrossRefGoogle Scholar
  12. 12.
    De Nicola, R., Loreti, M., Pugliese, R., Tiezzi, F.: A formal approach to autonomic systems programming: the SCEL language. ACM Trans. Auton. Adapt. Syst. (TAAS) 9(2), 7 (2014)Google Scholar
  13. 13.
    Díaz, Á.F., Earle, C.B., Fredlund, L.Å.: eJason: an implementation of Jason in Erlang. In: Dastani, M., Hübner, J.F., Logan, B. (eds.) ProMAS 2012. LNCS, vol. 7837, pp. 1–16. Springer, Heidelberg (2013). doi: 10.1007/978-3-642-38700-5_1 CrossRefGoogle Scholar
  14. 14.
    Ferscha, A.: Collective adaptive systems. In: ACM International Joint Conference on Pervasive and Ubiquitous Computing, pp. 893–895. ACM (2015)Google Scholar
  15. 15.
    Fontoura, M., Sadanandan, S., Shanmugasundaram, J., Vassilvitski, S., Vee, E., Venkatesan, S., Zien, J.: Efficiently evaluating complex boolean expressions. In: Proceedings of the 2010 ACM SIGMOD International Conference on Management of data, pp. 3–14. ACM (2010)Google Scholar
  16. 16.
    Fournet, C., Gonthier, G.: The reflexive cham and the join-calculus. In: Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 372–385. ACM (1996)Google Scholar
  17. 17.
    Gale, D., Shapley, L.S.: College admissions and the stability of marriage. Am. Math. Monthly 69(1), 9–15 (1962)MathSciNetCrossRefzbMATHGoogle Scholar
  18. 18.
    Gent, I.P., Prosser, P.: An empirical study of the stable marriage problem with ties and incomplete lists. In: Proceedings of the 15th European Conference on Artificial Intelligence, pp. 141–145. IOS Press (2002)Google Scholar
  19. 19.
    Harrenstein, P., Manlove, D., Wooldridge, M.: The joy of matching. IEEE Intell. Syst. 28(2), 81–85 (2013)CrossRefGoogle Scholar
  20. 20.
    Hewitt, C., Bishop, P., Steiger, R.: A universal modular actor formalism for artificial intelligence. In: Proceedings of the 3rd International Joint Conference on Artificial Intelligence, pp. 235–245. Morgan Kaufmann Publishers Inc. (1973)Google Scholar
  21. 21.
    Hirschfeld, R., Costanza, P., Nierstrasz, O.: Context-oriented programming. J. Object Technol. 7(3), 125–151 (2008)Google Scholar
  22. 22.
    Hu, Z., Hughes, J., Wang, M.: How functional programming mattered. Ntl. Sci. Rev. 2(3), 349–370 (2015)CrossRefGoogle Scholar
  23. 23.
    Hughes, J.: Why functional programming matters. Comput. J. 32(2), 98–107 (1989)CrossRefGoogle Scholar
  24. 24.
    Iwama, K., Miyazaki, S.: A survey of the stable marriage problem and its variants. In: International Conference on Informatics Education and Research for Knowledge-Circulating Society, ICKS 2008, pp. 131–136. IEEE (2008)Google Scholar
  25. 25.
    Iwama, K., Miyazaki, S., Morita, Y., Manlove, D.: Stable marriage with incomplete lists and ties. In: Wiedermann, J., Emde Boas, P., Nielsen, M. (eds.) ICALP 1999. LNCS, vol. 1644, pp. 443–452. Springer, Heidelberg (1999). doi: 10.1007/3-540-48523-6_41 CrossRefGoogle Scholar
  26. 26.
    jRESP: Java Runtime Environment for SCEL Programs. http://jresp.sourceforge.net/
  27. 27.
    Klaftenegger, D., Sagonas, K., Winblad, K.: On the scalability of the Erlang term storage. In: Proceedings of the Twelfth ACM SIGPLAN Workshop on Erlang, pp. 15–26. ACM (2013)Google Scholar
  28. 28.
    Krzywicki, D., Turek, W., Byrski, A., Kisiel-Dorohinicki, M.: Massively concurrent agent-based evolutionary computing. J. Comput. Sci. 11, 153–162 (2015)MathSciNetCrossRefGoogle Scholar
  29. 29.
  30. 30.
    Munera, D., Diaz, D., Abreu, S., Rossi, F., Saraswat, V., Codognet, P.: Solving hard stable matching problems via local search and cooperative parallelization. In: 29th AAAI Conference on Artificial Intelligence (2015)Google Scholar
  31. 31.
    O’Connell, A.: Inside Erlang, The Rare Programming Language Behind WhatsApp’s Success (2014). http://web.archive.org/web/20160715132942/, http://www.fastcompany.com/3026758/inside-erlang-the-rare-programming-language-behind-whatsapps-success
  32. 32.
    Plociniczak, H., Eisenbach, S.: JErlang: Erlang with joins. In: Clarke, D., Agha, G. (eds.) COORDINATION 2010. LNCS, vol. 6116, pp. 61–75. Springer, Heidelberg (2010). doi: 10.1007/978-3-642-13414-2_5 CrossRefGoogle Scholar
  33. 33.
    Salvaneschi, G., Ghezzi, C., Pradella, M.: ContextErlang: a language for distributed context-aware self-adaptive applications. Sci. Comput. Program. 102, 20–43 (2015)CrossRefGoogle Scholar
  34. 34.
    Stalio, S., Di Carlo, G., Parlati, S., Spinnato, P.: Resource management on a VM based computer cluster for scientific computing. arXiv preprint arXiv:1212.4658 (2012)
  35. 35.
    Thompson, S., Cesarini, F.: Erlang programming: a concurrent approach to software development (2009)Google Scholar
  36. 36.
    Wirsing, M., Hölzl, M., Koch, N., Mayer, P. (eds.): Software Engineering for Collective Autonomic Systems. LNCS, vol. 8998. Springer, Cham (2015)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2017

Authors and Affiliations

  1. 1.IMT Institute for Advanced Studies LuccaLuccaItaly
  2. 2.Gran Sasso Science InstituteL’AquilaItaly

Personalised recommendations