Abstract
Programming language virtual machines (VMs) realize language semantics, enforce security properties, and execute applications efficiently. Fully Reflective Execution Environments (EEs) are VMs that additionally expose their whole structure and behavior to applications. This enables develop- ers to observe and adapt VMs at run time. However, there is a belief that reflective EEs are not viable for practical usages because such flexibility would incur a high performance overhead. To refute this belief, we built a reflective EE on top of a highly optimizing dynamic compiler. We introduced a new optimization model that, based on the conjecture that variability of low-level (EE-level) reflective behavior is low in many scenarios, mitigates the most significant sources of the performance overheads related to the reflective capabilities in the EE. Our experiments indicate that reflective EEs can reach peak performance in the order of standard VMs. Concretely, that a) if reflective mechanisms are not used the execution overhead is negligible compared to standard VMs, b) VM operations can be redefined at language-level without incurring in significant overheads, c) for several software adaptation tasks, applying the reflection at the VM level is not only lightweight in terms of engineering effort, but also competitive in terms of performance in comparison to other ad-hoc solutions.
- Bridging the Gap between Machine and Language using First-Class Building Blocks. PhD thesis, University of Bern, 2012.Google Scholar
- J.-B. Arnaud, M. Denker, S. Ducasse, D. Pollet, A. Bergel, and M. Suen. Read-only execution for dynamic languages. In TOOLS, pages 117–136. Springer, 2010. Google Scholar
Digital Library
- K. Asai. Compiling a reflective language using metaocaml. In GPCE, pages 113–122. ACM, 2014. Google Scholar
Digital Library
- C. Chambers, D. Ungar, and E. Lee. An efficient implementation of self a dynamically-typed object-oriented language based on prototypes. In OOPSLA, pages 49–70. ACM, October 1989. Google Scholar
Digital Library
- G. Chari, D. Garbervetsky, S. Marr, and S. Ducasse. Towards fully reflective environments. In Onward! ACM, 2015. Google Scholar
Digital Library
- L. P. Deutsch and A. M. Schiffman. Efficient implementation of the Smalltalk-80 system. In POPL, Jan. 1984. Google Scholar
Digital Library
- Z. DeVito, D. Ritchie, M. Fisher, A. Aiken, and P. Hanrahan. First-class runtime generation of high-performance types using exotypes. In PLDI, pages 77–88. ACM, 2014. Google Scholar
Digital Library
- A. Goldberg and D. Robson. Smalltalk-80: the language and its implementation. Addison-Wesley, 1983. Google Scholar
Digital Library
- M. Haupt, R. Hirschfeld, T. Pape, G. Gabrysiak, S. Marr, A. Bergmann, A. Heise, M. Kleine, and R. Krahn. The som family: Virtual machines for teaching and research. In ITiCSE, pages 18–22. ACM, 2010. Google Scholar
Digital Library
- U. Hölzle, C. Chambers, and D. Ungar. Optimizing dynamically-typed object-oriented languages with polymorphic inline caches. In ECOOP, pages 21–38. Springer, 1991. Google Scholar
Digital Library
- G. Kiczales and J. D. Rivieres. The Art of the Metaobject Protocol. MIT Press, 1991. Google Scholar
Digital Library
- S. Marr and S. Ducasse. Tracing vs. partial evaluation: Comparing meta-compilation approaches for self-optimizing interpreters. In OOPSLA, pages 821–839. ACM, 2015. Google Scholar
Digital Library
- S. Marr, T. Pape, and W. De Meuter. Are We There Yet? Simple Language Implementation Techniques for the 21st Century. IEEE Software, 31(5):60–67, 2014.Google Scholar
Cross Ref
- S. Marr, C. Seaton, and S. Ducasse. Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and Without Compromises. In PLDI, pages 545–554. ACM, 2015. Google Scholar
Digital Library
- D. Rothlisberger, M. Harry, A. Villazon, D. Ansaloni, W. Binder, O. Nierstrasz, and P. Moret. Augmenting static source views in ides with dynamic metrics. In ICSM ’09, pages 253–262, Sept 2009.Google Scholar
- G. Salvaneschi, C. Ghezzi, and M. Pradella. An analysis of language-level support for self-adaptive software. TAAS, 8(2):7, 2013. Google Scholar
Digital Library
- C. Seaton, M. L. Van De Vanter, and M. Haupt. Debugging at full speed. In DLYA, pages 1–13. ACM, 2014. Google Scholar
Digital Library
- A. Shali and W. R. Cook. Hybrid partial evaluation. In OOPSLA, pages 375–390. ACM, 2011. Google Scholar
Digital Library
- D. Simon, C. Wimmer, B. Urban, G. Duboscq, L. Stadler, and T. Würthinger. Snippets: Taking the High Road to a Low Level. ACM Trans. Archit. Code Optim., 12(2):20:1–20:25, June 2015. Google Scholar
Digital Library
- D. Ungar, A. Spitz, and A. Ausch. Constructing a metacircular virtual machine in an exploratory programming environment. In OOPSLA, pages 11–20. ACM, 2005. Google Scholar
Digital Library
- T. Verwaest, C. Bruni, D. Gurtner, A. Lienhard, and O. Niestrasz. Pinocchio: Bringing reflection to life with first-class interpreters. In OOPSLA, pages 774–789. ACM, 2010. Google Scholar
Digital Library
- E. Wernli, O. Nierstrasz, C. Teruel, and S. Ducasse. Delegation proxies: The power of propagation. In Modularity, pages 1–12. ACM, 2014. Google Scholar
Digital Library
- A. Wöß, C. Wirth, D. Bonetta, C. Seaton, C. Humer, and H. Mössenböck. An object storage model for the truffle language implementation framework. In PPPJ, pages 133– 144. ACM, 2014. Google Scholar
Cross Ref
- T. Würthinger, C. Wimmer, A. Wöß, L. Stadler, G. Duboscq, C. Humer, G. Richards, D. Simon, and M. Wolczko. One vm to rule them all. In Onward!, pages 187–204. ACM, 2013. Google Scholar
Digital Library
- T. Würthinger, A. Wöß, L. Stadler, G. Duboscq, D. Simon, and C. Wimmer. Self-optimizing ast interpreters. In DLS, pages 73–82. ACM, 2012. Google Scholar
Digital Library
Index Terms
Building efficient and highly run-time adaptable virtual machines
Recommendations
Building efficient and highly run-time adaptable virtual machines
DLS 2016: Proceedings of the 12th Symposium on Dynamic LanguagesProgramming language virtual machines (VMs) realize language semantics, enforce security properties, and execute applications efficiently. Fully Reflective Execution Environments (EEs) are VMs that additionally expose their whole structure and behavior ...
Live gang migration of virtual machines
HPDC '11: Proceedings of the 20th international symposium on High performance distributed computingThis paper addresses the problem of simultaneously migrating a group of co-located and live virtual machines (VMs), i.e, VMs executing on the same physical machine. We refer to such a mass simultaneous migration of active VMs as "live gang migration". ...
Inter-rack live migration of multiple virtual machines
VTDC '12: Proceedings of the 6th international workshop on Virtualization Technologies in Distributed Computing DateWithin datacenters, often multiple virtual machines (VMs) need to be live migrated simultaneously for various reasons such as maintenance, power savings, and load balancing. Such mass simultaneous live migration of multiple VMs can trigger large data ...






Comments