Dynamic Message Processing and Transactional Memory in the Actor Model

With the trend of ever growing data centers and scaling core counts, simple programming models for efficient distributed and concurrent programming are required. One of the successful principles for scalable computing is the actor model, which is based on message passing. Actors are objects that hold local state that can only be modified by the exchange of messages. To avoid typical concurrency hazards, each actor processes messages sequentially. However, this limits the scalability of the model. We have shown in former work that concurrent message processing can be implemented with the help of transactional memory, ensuring sequential processing, when required. This approach is advantageous in low contention phases, however, does not scale for high contention phases. In this paper we introduce a combination of dynamic resource allocation and non-transactional message processing to overcome this limitation. This allows for efficient resource utilization as these two mechanisms can be handled in parallel. We show that we can substantially reduce the execution time of high-contention workloads in a micro-benchmark as well as in a real-world application.

[1]  David Padua,et al.  Encyclopedia of Parallel Computing , 2011 .

[2]  Hans-Ulrich Heiß,et al.  Adaptive Load Control in Transaction Processing Systems , 1991, VLDB.

[3]  David A. Wood,et al.  Supporting nested transactional memory in logTM , 2006, ASPLOS XII.

[4]  Carl Hewitt,et al.  A Universal Modular ACTOR Formalism for Artificial Intelligence , 1973, IJCAI.

[5]  Vivek Sarkar,et al.  Integrating task parallelism with actors , 2012, OOPSLA '12.

[6]  Maurice Herlihy,et al.  Software transactional memory for dynamic-sized data structures , 2003, PODC '03.

[7]  Rachid Guerraoui,et al.  Stretching transactional memory , 2009, PLDI '09.

[8]  Salman Khan,et al.  Software transactional memories for Scala , 2013, J. Parallel Distributed Comput..

[9]  James R. Larus,et al.  Transactional Memory , 2006, Transactional Memory.

[10]  Pascal Felber,et al.  Speculative Concurrent Processing with Transactional Memory in the Actor Model , 2013, OPODIS.

[11]  Carolyn L. Talcott,et al.  A foundation for actor computation , 1997, Journal of Functional Programming.

[12]  Gul A. Agha,et al.  Actor frameworks for the JVM platform: a comparative analysis , 2009, PPPJ '09.

[13]  Philipp Haller,et al.  On the integration of the actor model in mainstream technologies: the scala perspective , 2012, AGERE! 2012.

[14]  James R. Larus,et al.  Transactional Memory, 2nd edition , 2010, Transactional Memory.

[15]  Gregoire Mariethoz,et al.  The Direct Sampling method to perform multiple‐point geostatistical simulations , 2010 .

[16]  Pascal Felber,et al.  Identifying the Optimal Level of Parallelism in Transactional Memory Applications , 2013, NETYS.

[17]  Kunle Olukotun,et al.  CCSTM: A Library-Based STM for Scala , 2010 .

[18]  R. M. Srivastava,et al.  Multivariate Geostatistics: Beyond Bivariate Moments , 1993 .