skip to main content
10.1145/2687357.2687363acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

CAF - the C++ Actor Framework for Scalable and Resource-Efficient Applications

Published:20 October 2014Publication History

ABSTRACT

The actor model of computation has gained significant popularity over the last decade. Its high level of abstraction combined with its flexibility and efficiency makes it appealing for large applications in concurrent and distributed regimes.

In this paper, we report on our work of designing and building CAF, the "C++ Actor Framework". CAF targets at providing an extremely scalable native environment for building high-performance concurrent applications and distributed systems. Based on our previous library tt libcppa, CAF significantly extends its scopes of application and operation, as well as the range of scalability. The particular contributions of this paper are threefold. First we present the design and implementation of a type-safe messaging interface for actors that rules out a category of runtime errors and facilitates robust software design. Second we introduce a runtime inspection shell as a first building block for convenient debugging of distributed actors. Finally we enhance the scheduling facilities and improve scaling up to high numbers of concurrent processors. Extensive performance evaluations indicate ideal runtime behaviour for up to 64 cores at very low memory footprint. In these tests, CAF clearly outperforms competing actor environments.

References

  1. G. Agha. Actors: A Model Of Concurrent Computation In Distributed Systems. Technical Report 844, MIT, Cambridge, MA, USA, 1986. Google ScholarGoogle Scholar
  2. G. Agha and W. Kim. Parallel programming and complexity analysis using actors. In Massively Parallel Programming Models, 1997. Proceedings. Third Working Conference on, pages 68--79, Nov 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. G. Agha, I. A. Mason, S. Smith, and C. Talcott. Towards a Theory of Actor Computation. In Proceedings of CONCUR, volume 630 of LNCS, pages 565--579, Heidelberg, 1992. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. J. Armstrong. Erlang - A Survey of the Language and its Industrial Applications. In Proceedings of the symposium on industrial applications of Prolog (INAP96), pages 16--18. Hino, October 1996.Google ScholarGoogle Scholar
  5. J. Armstrong. Making Reliable Distributed Systems in the Presence of Software Errors. PhD thesis, Department of Microelectronics and Information Technology, KTH, Sweden, 2003.Google ScholarGoogle Scholar
  6. T. Arts, J. Hughes, J. Johansson, and U. Wiger. Testing telecoms software with quviq quickcheck. In Proceedings of the 2006 ACM SIGPLAN Workshop on Erlang, ERLANG'06, pages 2--10, New York, NY, USA, 2006. ACM. ISBN 1--59593--490--1. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. E. Baccelli, O. Hahm, M. Gunes, M. Wahlisch, and T. C. Schmidt. RIOT OS: Towards an OS for the Internet of Things. In Proc. of the 32nd IEEE INFOCOM. Poster, Piscataway, NJ, USA, 2013. IEEE Press.Google ScholarGoogle ScholarCross RefCross Ref
  8. H. Barringer, A. Goldberg, K. Havelund, and K. Sen. Rulebased Runtime Verification. In Verification, Model Checking, and Abstract Interpretation, pages 44--57. Springer, 2004.Google ScholarGoogle ScholarCross RefCross Ref
  9. R. D. Blumofe and C. E. Leiserson. Scheduling Multithreaded Computations by Work Stealing. J. ACM, 46(5):720--748, Sept. 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. D. Charousset, T. C. Schmidt, R. Hiesgen, and M. Wählisch. Native Actors -- A Scalable Software Platform for Distributed, Heterogeneous Environments. In Proc. of the 4rd ACM SIGPLAN Conference on Systems, Programming, and Applications (SPLASH'13), Workshop AGERE!, New York, NY, USA, Oct. 2013. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. M. Dertouzos and A. Mok. Multiprocessor Online Scheduling of Hard-Real-Time Tasks. Software Engineering, IEEE Transactions on, 15(12):1497--1506, Dec 1989. ISSN 0098- 5589. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. T. Desell and C. A. Varela. SALSA Lite: A Hash-Based Actor Runtime for Efficient Local Concurrency. In G. Agha, A. Igarashi, N. Kobayashi, H. Masuhara, S. Matsuoka, E. Shibayama, and K. Taura, editors, Concurrent Objects and Beyond, volume 8665 of Lecture Notes in Computer Science, pages 144--166. Springer Berlin Heidelberg, 2014. ISBN 978- 3--662--44470--2.Google ScholarGoogle ScholarCross RefCross Ref
  13. D. M. Geels, G. Altekar, S. Shenker, and I. Stoica. Replay debugging for distributed applications. In Proc. of USENIX'06 Ann. Tech. Conf., pages 289--300. USENIX Assoc., 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. M. Herlihy. Wait-Free Synchronization. ACM Trans. Program. Lang. Syst., 13(1):124--149, Jan. 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. M. Herlihy and J. E. B. Moss. Transactional Memory: Architectural Support for Lock-Free Data Structures. In Proceedings of the 20th ISCA, pages 289--300, New York, NY, USA, May 1993. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. C. Hewitt, P. Bishop, and R. Steiger. A Universal Modular ACTOR Formalism for Artificial Intelligence. In Proceedings of the 3rd IJCAI, pages 235--245, San Francisco, CA, USA, 1973. Morgan Kaufmann Publishers Inc. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. R. Hiesgen, D. Charousset, and T. C. Schmidt. Embedded Actors -- Towards Distributed Programming in the IoT. In Proc. of the 4th IEEE Int. Conf. on Consumer Electronics - Berlin, ICCE-Berlin'14, pages 371--375, Piscataway, NJ, USA, Sep. 2014. IEEE Press. ISBN 978--1--4799--6165--8.Google ScholarGoogle ScholarCross RefCross Ref
  18. S. Imam and V. Sarkar. Savina -- An Actor Benchmark Suite. In Proc. of the 5th ACM SIGPLAN Conf. on Systems, Programming, and Applications (SPLASH '14), Workshop AGERE!, New York, NY, USA, Oct. 2014. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. L. V. Kale and S. Krishnan. Charm++: Parallel programming with message-driven objects. Parallel Programming using C++, pages 175--213, 1996.Google ScholarGoogle Scholar
  20. R. K. Karmani, A. Shali, and G. Agha. Actor Frameworks for the JVM Platform: A Comparative Analysis. In PPPJ, pages 11--20, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. L. B. Kish. End of Moore's law: Thermal (Noise) Death of Integration in Micro and Nano Electronics. Physics Letters A, 305(3-4):144--149, 2002. ISSN 0375--9601.Google ScholarGoogle Scholar
  22. V. Kumar, D. Frampton, S. M. Blackburn, D. Grove, and O. Tardieu. Work-stealing Without the Baggage. In Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA'12, pages 297--314, New York, NY, USA, 2012. ACM. ISBN 978--1--4503--1561--6. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. D. Lea. A Java Fork/Join Framework. In Proceedings of the ACM 2000 Conference on Java Grande, JAVA'00, pages 36--43, New York, NY, USA, 2000. ACM. ISBN 1--58113--288--3. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. C. L. Liu and J. W. Layland. Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment. J. ACM, 20(1):46--61, Jan. 1973. ISSN 0004--5411. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. S. Meyers and A. Alexandrescu. C++ and the Perils of Double-Checked Locking. Dr. Dobb's Journal, July 2004.Google ScholarGoogle Scholar
  26. Microsoft. Casablanca. http://casablanca.codeplex.com/, 2012.Google ScholarGoogle Scholar
  27. K. Sen, A. Vardhan, G. Agha, and G. Rosu. Efficient Decentralized Monitoring of Safety in Distributed Systems. In Proceedings of the 26th International Conference on Software Engineering, ICSE'04, pages 418--427, Washington, DC, USA, 2004. IEEE Computer Society. ISBN 0--7695--2163-0. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. N. Shavit and D. Touitou. Software Transactional Memory. In Proceedings of the fourteenth annual ACM symposium on PODC, pages 204--213, New York, NY, USA, 1995. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. S. Srinivasan and A. Mycroft. Kilim: Isolation-Typed Actors for Java. In Proceedings of the 22nd ECOOP, volume 5142 of LNCS, pages 104--128, Berlin, Heidelberg, 2008. Springer- Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. T. Stanley, T. Close, and M. S. Miller. Causeway: A messageoriented distributed debugger. Technical Report HPL-2009- 78, HP Laboratories, 2009.Google ScholarGoogle Scholar
  31. J. Torrellas, H. S. Lam, and J. L. Hennessy. False Sharing and Spatial Locality in Multiprocessor Caches. IEEE Trans. Comput., 43(6):651--663, June 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Typesafe Inc. Akka. akka.io, March 2012.Google ScholarGoogle Scholar
  33. M. Vallentin, D. Charousset, T. C. Schmidt, V. Paxson, and M. Wahlisch. Native Actors: How to Scale Network Forensics. In Proc. of ACM SIGCOMM, Demo Session, pages 141--142, New York, August 2014. ACM. URL http://dx.doi.org/10.1145/2619239.26314714. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. T. Veldhuizen. Expression Templates. C++ Report, 7:26--31, 1995.Google ScholarGoogle Scholar

Index Terms

  1. CAF - the C++ Actor Framework for Scalable and Resource-Efficient Applications

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in
          • Published in

            cover image ACM Conferences
            AGERE! '14: Proceedings of the 4th International Workshop on Programming based on Actors Agents & Decentralized Control
            October 2014
            146 pages
            ISBN:9781450321891
            DOI:10.1145/2687357

            Copyright © 2014 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 20 October 2014

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article

            Acceptance Rates

            AGERE! '14 Paper Acceptance Rate9of14submissions,64%Overall Acceptance Rate19of35submissions,54%

            Upcoming Conference

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader