On the future of research VMs: a hardware/software perspective

In the recent years, we have witnessed an explosion of the usages of Virtual Machines (VMs) which are currently found in desktops, smartphones, and cloud deployments. These recent developments create new research opportunities in the VM domain extending from performance to energy efficiency, and scalability studies. Research into these directions necessitates research frameworks for VMs that provide full coverage of the execution domains and hardware platforms. Unfortunately, the state of the art on Research VMs does not live up to such expectations and lacks behind industrial-strength software, making it hard for the research community to provide valuable insights. This paper presents our work in attempting to tackle those shortcomings by introducing Beehive, our vision towards a modular and seamlessly extensible ecosystem for research on virtual machines. Beehive unifies a number of existing state-of-the-art tools and components with novel ones providing a complete platform for hardware/software co-design of Virtual Machines.

[1]  Foivos S. Zakkak,et al.  Experiences with Building Domain-Specific Compilation Plugins in Graal , 2017, ManLang.

[2]  Foivos S. Zakkak,et al.  Cross-ISA debugging in meta-circular VMs , 2017, VMIL@SPLASH.

[3]  Kevin Skadron,et al.  Architecture implications of pads as a scarce resource , 2014, 2014 ACM/IEEE 41st International Symposium on Computer Architecture (ISCA).

[4]  Carl Friedrich Bolz,et al.  Tracing the meta-level: PyPy's tracing JIT compiler , 2009, ICOOOLPS@ECOOP.

[5]  Mikel Luján,et al.  Heterogeneous Managed Runtime Systems: A Computer Vision Case Study , 2017, VEE.

[6]  Harish Patil,et al.  Pin: building customized program analysis tools with dynamic instrumentation , 2005, PLDI '05.

[7]  Cong Xu,et al.  NVSim: A Circuit-Level Performance, Energy, and Area Model for Emerging Nonvolatile Memory , 2012, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[8]  Ying Zhang,et al.  ACTiCLOUD: Enabling the Next Generation of Cloud Applications , 2017, 2017 IEEE 37th International Conference on Distributed Computing Systems (ICDCS).

[9]  Christoforos E. Kozyrakis,et al.  ZSim: fast and accurate microarchitectural simulation of thousand-core systems , 2013, ISCA.

[10]  Christian Wimmer,et al.  One VM to rule them all , 2013, Onward!.

[11]  Somayeh Sardashti,et al.  The gem5 simulator , 2011, CARN.

[12]  Kevin Skadron,et al.  Temperature-aware microarchitecture , 2003, ISCA '03.

[13]  Mikel Luján,et al.  Type Information Elimination from Objects on Architectures with Tagged Pointers Support , 2018, IEEE Transactions on Computers.

[14]  Yi Lin,et al.  Draining the Swamp: Micro Virtual Machines as Solid Foundation for Language Development , 2015, SNAPL.

[15]  Sebastian Werner,et al.  Project Beehive: A Hardware/Software Co-designed Stack for Runtime and Architectural Research , 2015, ECOOP 2015.

[16]  Mikel Luján,et al.  MaxSim: A simulation platform for managed applications , 2017, 2017 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS).

[17]  Mikel Luján,et al.  The Potential of Dynamic Binary Modification and CPU-FPGA SoCs for Simulation , 2017, 2017 IEEE 25th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM).

[18]  Mikel Luján,et al.  MAMBO: A Low-Overhead Dynamic Binary Modification Tool for ARM , 2016, ACM Trans. Archit. Code Optim..

[19]  Perry Cheng,et al.  Oil and water? High performance garbage collection in Java with MMTk , 2004, Proceedings. 26th International Conference on Software Engineering.

[20]  Michael Haupt,et al.  Maxine: An approachable virtual machine for, and in, java , 2013, TACO.

[21]  Jung Ho Ahn,et al.  The McPAT Framework for Multicore and Manycore Architectures: Simultaneously Modeling Power, Area, and Timing , 2013, TACO.