This work presents the key challenges that Java Virtual Machines (JVMs) implementers face when targeting future non-cache-coherent architectures. It discusses the techniques used to overcome these challenges by distributed JVMs in the literature, and examines their applicability on future non-cache-coherent architectures. It presents new algorithms for software caching, monitor management, and thread scheduling, that take advantage of the hierarchical nature of future non-cache-coherent architectures with coherent-islands. It also builds a proof-of-concept JVM that runs on a 512-core, non-cache-coherent, many-core prototype and present early evaluation results for parts of the proposed algorithms.
['Foivos S. Zakkak', 'Polyvios Pratikakis']
Building a Java™ Virtual Machine for Non-Cache-Coherent Many-core Architectures