Abstract
Nowadays, many virtual execution environments benefit from concurrency offered by the actor model. Unfortunately, while actors are used in many applications, existing profiling tools are not much effective in analyzing the performance of applications using actors. In this paper, we present a new instrumentation-based technique to profile actors in virtual execution environments. Our technique adopts platform-independent profiling metrics that minimize the perturbations induced by the instrumentation logic and allow comparing profiling results across different platforms. In particular, our technique measures the initialization cost, the amount of executed computations, and the messages sent and received by each actor. We implement our technique within a profiling tool for Akka actors on the Java platform. Evaluation results show that our profiling technique helps performance analysis of actor utilization and communication between actors in large-scale computing frameworks.
- Akka. http://akka.io.Google Scholar
- Elixir. http://elixir-lang.org.Google Scholar
- Apache Flink. https://flink.apache.org.Google Scholar
- GPars. http://gparsdocs.de.a9sapp.eu.Google Scholar
- Jetlang. https://github.com/jetlang/.Google Scholar
- mpiP. http://mpip.sourceforge.net.Google Scholar
- Zipkin. http://zipkin.io.Google Scholar
- G. Agha. Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, 1986. Google Scholar
Digital Library
- J. Armstrong. Programming Erlang: Software for a Concurrent World. Pragmatic Bookshelf, 2007. Google Scholar
Digital Library
- L. Backstrom, D. Huttenlocher, J. Kleinberg, and X. Lan. Group Formation in Large Social Networks: Membership, Growth, and Evolution. In KDD, pages 44–54, 2006. Google Scholar
Digital Library
- P. Barham, A. Donnelly, R. Isaacs, and R. Mortier. Using Magpie for Request Extraction and Workload Modelling. In OSDI, pages 259–272, 2004. Google Scholar
Digital Library
- W. Binder, J. G. Hulaas, and A. Villazón. Portable Resource Control in Java. In OOPSLA, pages 139–155, 2001. Google Scholar
Digital Library
- J. Dedecker, T. Van Cutsem, S. Mostinckx, T. D’Hondt, and W. De Meuter. Ambient-Oriented Programming in Ambienttalk. In ECOOP, pages 230–254, 2006. Google Scholar
Digital Library
- K. Du Bois, J. B. Sartor, S. Eyerman, and L. Eeckhout. Bottle Graphs: Visualizing Scalability Bottlenecks in Multi-threaded Applications. In OOPSLA, pages 355–372, 2013. Google Scholar
Digital Library
- R. Fonseca, G. Porter, R. H. Katz, S. Shenker, and I. Stoica. X-trace: A Pervasive Network Tracing Framework. In NSDI, pages 271–284, 2007. Google Scholar
Digital Library
- K. Hammond, H.-W. Loidl, and A. S. Partridge. Visualising granularity in parallel programs: A graphical winnowing system for Haskell. In HPFC, volume 95, pages 208–221, 1995.Google Scholar
- Y. He, C. E. Leiserson, and W. M. Leiserson. The Cilkview Scalability Analyzer. In SPAA, pages 145–156, 2010. Google Scholar
Digital Library
- C. Hewitt, P. Bishop, and R. Steiger. A Universal Modular ACTOR Formalism for Artificial Intelligence. In IJCAI, pages 235–245, 1973. Google Scholar
Digital Library
- S. M. Imam and V. Sarkar. Savina - An Actor Benchmark Suite: Enabling Empirical Evaluation of Actor Libraries. In AGERE!, pages 67–80, 2014. Google Scholar
Digital Library
- M. Kambadur, K. Tang, and M. A. Kim. Harmony: Collection and Analysis of Parallel Block Vectors. In ISCA, pages 452– 463, 2012. Google Scholar
Digital Library
- L. Marek, A. Villazón, Y. Zheng, D. Ansaloni, W. Binder, and Z. Qi. DiSL: A Domain-specific Language for Bytecode Instrumentation. In AOSD, pages 239–250, 2012. Google Scholar
Digital Library
- M. L. Massie, B. N. Chun, and D. E. Culler. The ganglia distributed monitoring system: design, implementation, and experience. Parallel Computing, 30(7):817 – 840, 2004.Google Scholar
Cross Ref
- T. Mytkowicz, A. Diwan, M. Hauswirth, and P. F. Sweeney. Evaluating the Accuracy of Java Profilers. In PLDI, pages 187–197, 2010. Google Scholar
Digital Library
- A. Rosà, L. Y. Chen, and W. Binder. Profiling Actor Utilization and Communication in Akka. In Erlang, pages 24–32, 2016. Google Scholar
Digital Library
- R. Schöne, R. Tschüter, T. Ilsche, and D. Hackenberg. The VampirTrace Plugin Counter Interface: Introduction and Examples. In Euro-Par 2010 Parallel Processing Workshops, pages 501–511, 2011. Google Scholar
Digital Library
- B. H. Sigelman, L. A. Barroso, M. Burrows, P. Stephenson, M. Plakal, D. Beaver, S. Jaspan, and C. Shanbhag. Dapper, a Large-Scale Distributed Systems Tracing Infrastructure. Technical report, Google, Inc., 2010.Google Scholar
- P. Stutz, A. Bernstein, and W. Cohen. Signal/Collect: Graph Algorithms for the (Semantic) Web. In ISWC, pages 764–780, 2010. Google Scholar
Digital Library
- S. Tasharofi, P. Dinges, and R. E. Johnson. Why Do Scala Developers Mix the Actor Model with Other Concurrency Models? In ECOOP, pages 302–326, 2013. Google Scholar
Digital Library
- J. Vetter. Dynamic Statistical Profiling of Communication Activity in Distributed Applications. In SIGMETRICS, pages 240–250, 2002. Google Scholar
Digital Library
- M. Yu, A. Greenberg, D. Maltz, J. Rexford, L. Yuan, S. Kandula, and C. Kim. Profiling Network Performance for Multi-tier Data Center Applications. In NSDI, pages 57–70, 2011. Google Scholar
Digital Library
- M. Zaharia, M. Chowdhury, T. Das, A. Dave, J. Ma, M. Mc-Cauley, M. J. Franklin, S. Shenker, and I. Stoica. Resilient Distributed Datasets: A Fault-tolerant Abstraction for In-memory Cluster Computing. In NSDI, pages 2:1–2:14, 2012. Google Scholar
Digital Library
Index Terms
Actor profiling in virtual execution environments
Recommendations
Actor profiling in virtual execution environments
GPCE 2016: Proceedings of the 2016 ACM SIGPLAN International Conference on Generative Programming: Concepts and ExperiencesNowadays, many virtual execution environments benefit from concurrency offered by the actor model. Unfortunately, while actors are used in many applications, existing profiling tools are not much effective in analyzing the performance of applications ...
Platform-independent profiling in a virtual execution environment
Virtual execution environments, such as the Java virtual machine, promote platform-independent software development. However, when it comes to analyzing algorithm complexity and performance bottlenecks, available tools focus on platform-specific metrics,...
A portable and customizable profiling framework for java based on bytecode instruction counting
APLAS'05: Proceedings of the Third Asian conference on Programming Languages and SystemsPrevailing profilers for Java, which rely on standard, native-code profiling interfaces, are not portable, give imprecise results due to serious measurement perturbation, and cause excessive overheads. In contrast, program transformations allow to ...







Comments