skip to main content
research-article

Effectively mapping linguistic abstractions for message-passing concurrency to threads on the Java virtual machine

Published:23 October 2015Publication History
Skip Abstract Section

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.

References

  1. Panini Programming Language. http://paninij.org/.Google ScholarGoogle Scholar
  2. Dispatchers in Akka. http://doc.akka.io/docs/akka/snapshot/scala/ dispatchers.html.Google ScholarGoogle Scholar
  3. 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 ScholarGoogle Scholar
  4. Evaluation Artifacts: cVector-based mapping. https://github. com/oopsla2015/strategy.Google ScholarGoogle Scholar
  5. The Java Interactive Profiler. http://jiprof.sourceforge.net/.Google ScholarGoogle Scholar
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. M. Astley. The Actor Foundry: A Java-based Actor Programming Environment. In Open Systems Laboratory, University of Illinois at Urbana-Champaign, 1998-99.Google ScholarGoogle Scholar
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. J. Boner. Akka, TypeSafe Inc. http://akka.io.Google ScholarGoogle Scholar
  10. 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 ScholarGoogle ScholarCross RefCross Ref
  11. 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 ScholarGoogle Scholar
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. B. Fulgham and I. Gouy. Computer language benchmarks game. http://benchmarksgame.alioth.debian.org/.Google ScholarGoogle Scholar
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 1297033.Google ScholarGoogle Scholar
  16. 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 ScholarGoogle Scholar
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarCross RefCross Ref
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. T. Jansen. Actors guild. https://code.google.com/p/ actorsguildframework/.Google ScholarGoogle Scholar
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. R. M. May. Simple mathematical models with very complicated dynamics. In The Theory of Chaotic Attractors, pages 85–93. Springer, 2004.Google ScholarGoogle Scholar
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 38829.Google ScholarGoogle Scholar
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. 1887719.Google ScholarGoogle Scholar
  28. H. Rajan. Capsule-oriented programming. In Proceedings of the 37th International Conference on Software Engineering: NIER Track, May 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. 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 ScholarGoogle Scholar
  30. M. Rettig. Jetlang. http://code.google.com/p/jetlang/.Google ScholarGoogle Scholar
  31. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  32. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  33. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  34. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  35. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  36. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  37. S. Tasharofi and R. Johnson. Actor Collection. http:// actor-applications.cs.illinois.edu/.Google ScholarGoogle Scholar
  38. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  39. A. Tousimojarad and W. Vanderbauwhede. An Efficient Thread Mapping Strategy for Multiprogramming on Manycore Processors. Journal of Parallel Computing, 2014.Google ScholarGoogle Scholar
  40. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  41. 2687367.Google ScholarGoogle Scholar
  42. J. Zhang. Characterizing the scalability of Erlang VM on many-core processors. Master’s thesis, KTH, 2011.Google ScholarGoogle Scholar

Index Terms

  1. Effectively mapping linguistic abstractions for message-passing concurrency to threads on the Java virtual machine

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 50, Issue 10
          OOPSLA '15
          October 2015
          953 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/2858965
          • Editor:
          • Andy Gill
          Issue’s Table of Contents
          • cover image ACM Conferences
            OOPSLA 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications
            October 2015
            953 pages
            ISBN:9781450336895
            DOI:10.1145/2814270

          Copyright © 2015 ACM

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 23 October 2015

          Check for updates

          Qualifiers

          • research-article
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!