Asynchronous programming is a popular way of exploiting multi-core and distributed systems and is mainly about using only asynchronous events as the means for coordination of concurrently running computations. In the actor-based model of asynchronous programming computation is driven by the asynchronous communication of events (also called messages). In this paper we introduce and evaluate a new Scala library for actor-based programming that models messages as asynchronous method calls, provides static typing of messages, integrates futures with actors and supports cooperative scheduling inside an actor. The main challenge, next to designing an easy-to-use API, is the development of an efficient and scalable implementation of this library with regard to careful thread management and communication overhead.

, , , , , ,
doi.org/10.1109/CSE.2018.00010
21st IEEE International Conference on Computational Science and Engineering, CSE 2018
Centrum Wiskunde & Informatica, Amsterdam (CWI), The Netherlands

Serbanescu, V., de Boer, F., & Jaghoori, M. M. (2018). ASCOOP: Actors in scala with cooperative scheduling. In 21st IEEE International Conference on Computational Science and Engineering, CSE 2018 (pp. 19–28). doi:10.1109/CSE.2018.00010