SPLASH Systems, Programming, and Applications
Link to Published Version
Journal or Book Title
AGERE! '14 Proceedings of the 4th International Workshop on Programming based on Actors Agents & Decentralized Control
AGERE! '14 The 4th International Workshop on Programming based on Actors Agents & Decentralized Control
October 20, 2014
Actor frameworks running on Java Virtual Machine (JVM) platform face two main challenges in utilizing multi-core architectures, i) efficiently mapping actors to JVM threads, and ii) scheduling JVM threads on multi-core. JVM-based actor frameworks allow fine tuning of actors to threads mapping, however scheduling of threads on multi-core is left to the OS scheduler. Hence, efficiently mapping actors to threads is critical for achieving good performance and scalability. In the existing JVM-based actor frameworks, programmers select default actors to threads mappings and iteratively fine tune the mappings until the desired performance is achieved. This process is tedious and time consuming when building large scale distributed applications. We propose a technique that automatically maps actors to JVM threads. Our technique is based on a set of heuristics with the goal of balancing actors computations across JVM threads and reducing communication overheads. We explain our technique in the context of the Panini programming language, which provides capsules as an actor-like abstraction for concurrency, but also explore its applicability to other approaches.
© ACM, 2014. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in Proceedings of the 4th International Workshop on Programming based on Actors Agents & Decentralized Control, pp. 29-41. ACM, 2014. https://doi.org/10.1145/2687357.2687367
Upadhyaya, Ganesha and Rajan, Hridesh, "An Automatic Actors to Threads Mapping Technique for JVM-Based Actor Frameworks" (2014). Computer Science Conference Presentations, Posters and Proceedings. 30.