Abstract
Efficient mapping of message passing concurrency (MPC) abstractions to Java Virtual Machine (JVM) threads is critical for performance, scalability, and CPU utilization; but tedious and time consuming to perform manually. In general, this mapping cannot be found in polynomial time, but we show that by exploiting the local characteristics of MPC abstractions and their communication patterns this mapping can be determined effectively. We describe our MPC abstraction to thread mapping technique, its realization in two frame- works (Panini and Akka), and its rigorous evaluation using several benchmarks from representative MPC frameworks. We also compare our technique against four default mapping techniques: thread-all, round-robin-task-all, random-task-all and work-stealing. Our evaluation shows that our mapping technique can improve the performance by 30%-60% over default mapping techniques. These improvements are due to a number of challenges addressed by our technique namely: i) balancing the computations across JVM threads, ii) reducing the communication overheads, iii) utilizing information about cache locality, and iv) mapping MPC abstractions to threads in a way that reduces the contention between JVM threads.
- Panini Programming Language. http://paninij.org/.Google Scholar
- Dispatchers in Akka. http://doc.akka.io/docs/akka/snapshot/scala/ dispatchers.html.Google Scholar
- Tuning Dispatchers: Discussion threads. http://tinyurl.com/ o6utwkp,http://tinyurl.com/ovypwnu,http://tinyurl.com/ponekm6,http: //tinyurl.com/o7xzh8s,http://tinyurl.com/ohwsesn.Google Scholar
- Evaluation Artifacts: cVector-based mapping. https://github. com/oopsla2015/strategy.Google Scholar
- The Java Interactive Profiler. http://jiprof.sourceforge.net/.Google Scholar
- S. Aronis, N. Papaspyrou, K. Roukounaki, K. Sagonas, Y. Tsiouris, and I. E. Venetis. A scalability benchmark suite for Erlang/OTP. In Erlang’12, pages 33–42. Google Scholar
Digital Library
- M. Astley. The Actor Foundry: A Java-based Actor Programming Environment. In Open Systems Laboratory, University of Illinois at Urbana-Champaign, 1998-99.Google Scholar
- M. Bagherzadeh and H. Rajan. Panini: A Concurrent Programming Model for Solving Pervasive and Oblivious Interference. In Proceedings of the 14th International Conference on Modularity, MODULARITY 2015, pages 93–108. ACM. URL http://doi.acm.org/10.1145/2724525.2724568. Google Scholar
Digital Library
- J. Boner. Akka, TypeSafe Inc. http://akka.io.Google Scholar
- T. Desell and C. A. Varela. SALSA Lite: A Hash-Based Actor Runtime for Efficient Local Concurrency. In Concurrent Objects and Beyond, Lecture Notes in Computer Science, 2014.Google Scholar
Cross Ref
- S. L. M. Eric Lin, Ganesha Upadhyaya and H. Rajan. Duck Futures: A Generative Approach to Transparent Futures. Technical report, Iowa State University, 2015.Google Scholar
- E. Francesquini, A. Goldman, and J.-F. Méhaut. Actor scheduling for multicore hierarchical memory platforms. In Proceedings of the twelth ACM SIGPLAN workshop on Erlang, pages 51–62, 2013. Google Scholar
Digital Library
- B. Fulgham and I. Gouy. Computer language benchmarks game. http://benchmarksgame.alioth.debian.org/.Google Scholar
- A. Georges, D. Buytaert, and L. Eeckhout. Statistically Rigorous Java Performance Evaluation. In Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-oriented Programming Systems and Applications, OOPSLA ’07, pages 57–76. ACM, 2007. URL http://doi.acm.org/10.1145/1297027. Google Scholar
Digital Library
- 1297033.Google Scholar
- F. Guirado, A. Ripoll, C. Roig, and E. Luque. Performance prediction using an application-oriented mapping tool. In Proceedings of the 12th Euromicro Conference on Parallel, Distributed and Network-Based Processing, pages 184–191. IEEE, 2004.Google Scholar
- P. Haller and M. Odersky. Actors That Unify Threads and Events. In Proceedings of the 9th International Conference on Coordination Models and Languages, pages 171–190, 2007. URL http://dl.acm.org/citation.cfm?id=1764606.1764620. Google Scholar
Digital Library
- C. Hewitt, P. Bishop, and R. Steiger. A universal modular ACTOR formalism for artificial intelligence. In Proceedings of the 3rd International Joint Conference on Artificial Intelligence, pages 235–245. Morgan Kaufmann Publishers Inc., 1973. Google Scholar
Digital Library
- A. Heydarnoori and W. Binder. A graph-based approach for deploying component-based applications into channel-based distributed environments. Journal of Software, 6(8):1381– 1394, 2011.Google Scholar
Cross Ref
- S. M. Imam and V. Sarkar. Savina - An Actor Benchmark Suite: Enabling Empirical Evaluation of Actor Libraries. In Proceedings of the 4th International Workshop on Programming Based on Actors Agents & Decentralized Control, AGERE! ’’14, pages 67–80. ACM, 2014. URL http://doi.acm. org/10.1145/2687357.2687368. Google Scholar
Digital Library
- T. Jansen. Actors guild. https://code.google.com/p/ actorsguildframework/.Google Scholar
- B. Liskov and R. Scheifler. Guardians and actions: Linguistic support for robust, distributed programs. ACM Transactions on Programming Languages and Systems (TOPLAS), 5(3): 381–404, 1983. Google Scholar
Digital Library
- R. M. May. Simple mathematical models with very complicated dynamics. In The Theory of Chaotic Attractors, pages 85–93. Springer, 2004.Google Scholar
- O. M. Nierstrasz. Active Objects in Hybrid. In Proceedings of the International Conference on Object-oriented Programming Systems, Languages and Applications, OOPSLA ’87, pages 243–253. ACM. URL http://doi.acm.org/10.1145/38765. Google Scholar
Digital Library
- 38829.Google Scholar
- J.-N. Quintin and F. Wagner. Hierarchical Work-stealing. In Proceedings of the 16th International Euro-Par Conference on Parallel Processing: Part I, pages 217–229. Springer-Verlag, 2010. URL http://dl.acm.org/citation.cfm?id=1887695. Google Scholar
Digital Library
- 1887719.Google Scholar
- H. Rajan. Capsule-oriented programming. In Proceedings of the 37th International Conference on Software Engineering: NIER Track, May 2015. Google Scholar
Digital Library
- H. Rajan, S. M. Kautz, E. Lin, S. L. Mooney, Y. Long, and G. Upadhyaya. Capsule-oriented Programming in the Panini Language. Technical Report 14-08, 2014.Google Scholar
- M. Rettig. Jetlang. http://code.google.com/p/jetlang/.Google Scholar
- C. Roig, A. Ripoll, M. A. Senar, F. Guirado, and E. Luque. Modelling Message-passing Programs for Static Mapping. In Proceedings of the 8th Euromicro Conference on Parallel and Distributed Processing, EURO-PDP’00, pages 229–236, 1999. URL http://dl.acm.org/citation.cfm?id=1897179.1897214. Google Scholar
Digital Library
- C. Roig, A. Ripoll, and F. Guirado. A New Task Graph Model for Mapping Message Passing Applications. IEEE Trans. Parallel Distrib. Syst., 18(12):1740–1753, 2007. URL http://dx.doi.org/10.1109/TPDS.2007.1117. Google Scholar
Digital Library
- H. Sasaki, T. Tanimoto, K. Inoue, and H. Nakamura. Scalability-based Manycore Partitioning. In Proceedings of the 21st International Conference on Parallel Architectures and Compilation Techniques, PACT ’12, pages 107–116. ACM, 2012. URL http://doi.acm.org/10.1145/2370816.2370833. Google Scholar
Digital Library
- A. K. Singh, M. Shafique, A. Kumar, and J. Henkel. Mapping on Multi/Many-core Systems: Survey of Current and Emerging Trends. In Proceedings of the 50th Annual Design Automation Conference, DAC ’13, pages 1:1–1:10. ACM, 2013. URL http://doi.acm.org/10.1145/2463209.2488734. Google Scholar
Digital Library
- L. A. Smith, J. M. Bull, and J. Obdrzálek. A Parallel Java Grande Benchmark Suite. In Proceedings of the 2001 ACM/IEEE Conference on Supercomputing, SC ’01, pages 8– 8. ACM, 2001. URL http://doi.acm.org/10.1145/582034.582042. Google Scholar
Digital Library
- S. Srinivasan and A. Mycroft. Kilim: Isolation-Typed Actors for Java. In Proceedings of the 22nd European Conference on Object-Oriented Programming, ECOOP ’08. Google Scholar
Digital Library
- S. Tasharofi and R. Johnson. Actor Collection. http:// actor-applications.cs.illinois.edu/.Google Scholar
- W. Thies and S. Amarasinghe. An Empirical Characterization of Stream Programs and Its Implications for Language and Compiler Design. In Proceedings of the 19th International Conference on Parallel Architectures and Compilation Techniques, pages 365–376. ACM, 2010. URL http://doi.acm.org/10. 1145/1854273.1854319. Google Scholar
Digital Library
- A. Tousimojarad and W. Vanderbauwhede. An Efficient Thread Mapping Strategy for Multiprogramming on Manycore Processors. Journal of Parallel Computing, 2014.Google Scholar
- G. Upadhyaya and H. Rajan. An Automatic Actors to Threads Mapping Technique for JVM-based Actor Frameworks. In Proceedings of the 4th International Workshop on Programming based on Actors Agents & Decentralized Control, pages 29––41. ACM, 2014. URL http://doi.acm.org/10.1145/2687357. Google Scholar
Digital Library
- 2687367.Google Scholar
- J. Zhang. Characterizing the scalability of Erlang VM on many-core processors. Master’s thesis, KTH, 2011.Google Scholar
Index Terms
Effectively mapping linguistic abstractions for message-passing concurrency to threads on the Java virtual machine
Recommendations
Effectively mapping linguistic abstractions for message-passing concurrency to threads on the Java virtual machine
OOPSLA 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsEfficient mapping of message passing concurrency (MPC) abstractions to Java Virtual Machine (JVM) threads is critical for performance, scalability, and CPU utilization; but tedious and time consuming to perform manually. In general, this mapping cannot ...
An Automatic Actors to Threads Mapping Technique for JVM-Based Actor Frameworks
AGERE! '14: Proceedings of the 4th International Workshop on Programming based on Actors Agents & Decentralized ControlActor 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 ...
A java virtual machine architecture for very small devices
Special Issue: Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool support for embedded systems (San Diego, CA).The smallest complete Java™ virtual machine implementations in use today are based on the CLDC standard and are deployed in mobile phones and PDAs. These implementations require several tens of kilobytes. Smaller Java-like implementations also exist, ...






Comments