You must be logged in to post a comment.
How does Boost::Actor compare to other C++ Actor implementations like jss::actors, Theron and libcppa?
This is interesting in multiple aspects, namely:
– Scalability and parallelism
– Design tradeoffs
What throughput can it handle?
Say I have a system with hundreds-to-thousands of messages per second between what would be tens of actors. Would this be a suitable use case? What would be unsuitable use cases?
I am very sorry for the delay. I didn’t receive any mail for activity here. I checked the box for subscribing now, so I hope I’ll get a mail for future posts here.
Boost.Actor is a “boostified” version of libcppa (though it has been renamed to CAF in the meantime). We did not benchmark against jss::actors. The current release of Theron does not terminate for our benchmarks and its author did not respond to my mail about this issue. The last benchmark a while ago did reveal serious performance issues in Theron though: http://libcppa.blogspot.de/2012/03/few-words-about-theron.html
You will find a more in-depth performance discussion in our last AGERE paper online: http://actor-framework.org/pdf/cshw-nassp-13.pdf and a discussion of design decision in our C++Now Paper http://2013.cppnow.org/files/2013/03/dominik_charousset_paper_cppnow2013.pdf (please keep in mind that some details are outdated by now).
Boost.Actor / CAF is definitely suited for handling thousands of messages and in fact also thousands of actors. An unsuitable use case might be high performance computing in clusters, mainly because CAF does not have an InfiniBand backend or tools like mpirun for automated distributed launches.