AGERE 2020: Proceedings of the 10th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control

Full Citation in the ACM Digital Library


High-throughput stream processing with actors

The steady growth of data volume produced as continuous streams makes paramount the development of software capable of providing timely results to the users. The Actor Model (AM) offers a high-level of abstraction suited for developing scalable message-passing applications. It allows the application developer to focus on the application logic moving the burden of implementing fast and reliable inter-Actors message-exchange to the implementation framework.

In this paper, we focus on evaluating the model in high data rate streaming applications targeting scale-up servers. Our approach leverages Parallel Patterns (PP) abstractions to model streaming computations and introduces optimizations that otherwise could be challenging to implement without violating the Actor Model's semantics. The experimental analysis demonstrates that the new implementation skeletons we propose for our PPs can bring significant performance boosts (more than 2X) in high data rate streaming applications implemented in CAF.

Run, agent, run! architecture and benchmarking of actor-based agents

The paper introduces an Agent-Oriented Programming (AOP) framework based on the Belief-Desire-Intention (BDI) model of agency. The novelty of this framework is in relying on the Actor model, instantiating each intentional agent as an autonomous micro-system run by actors. The working hypothesis behind this choice is that defining the agents via actors results in a more fine-grained modular architecture and that the execution of agent-oriented programs is enhanced (in scalability as well as in performance) by relying on robust implementations of Actor models such as Akka. The framework is benchmarked and analyzed quantitatively and qualitatively against three other AOP frameworks: Jason, ASTRA and Sarl.

Revisiting the network stack in CAF

Applications increasingly demand distribution across the global Internet. The Actor model of computation has been wisely designed to abstract communication between actors and hence remains transparent w.r.t. distribution. Performance, security, and deployment considerations, however, make it difficult to define a specific communication transport that should be hardcoded into an actor framework. It is rather desirable to design appropriate transport abstractions, which allow for flexible choices and configurations of transport functions on the Internet. In this paper, we report about our ongoing work of redesigning, implementing, and evaluating a network stack that abstracts transport for the C++ Actor Framework (CAF). The stack allows for the exchanging of transport protocols and adds configuration options as well as compositions of protocols. First comparisons of TCP versus UDP with configurable reliability options are provided, as well as an early evaluation of its performance.