Inproceedings,

Dynamic Look Ahead Compilation: A Technique to Hide JIT Compilation Latencies in Multicore Environment

, , , and .
Compiler Construction, volume 5501 of Lecture Notes in Computer Science, page 220--235. Springer, (2009)

Abstract

Object-code virtualization, commonly used to achieve software portability, relies on a virtual execution environment, typically comprising an interpreter used for initial execution of methods, and a JIT for native code generation. The availability ofmultiple processors on current architectures makes it attractive to perform dynamic compilation in parallel with applicationexecution. The major issue is to decide at runtime which methods to compile ahead of execution, and how much time to investin their optimization. This research introduces an abstract model, termed Dynamic Look Ahead (DLA) compilation, which representsthe available information on method calls and computational weight as a weighted graph. The graph dynamically evolves as computationproceeds. The model is then instantiated by specifying criteria for adaptively choosing the method compilation order. TheDLA approach has been applied within our dynamic compiler for .NET. Experimental results are reported and analyzed, for bothsynthetic programs and benchmarks. The main finding is that a careful choice of method-selection criteria, based on light-weightprogram analysis and execution tracing, is essential to mask compilation times and to achieve higher overall performances.On multi-processors, the DLA approach is expected to challenge the traditional virtualization environments based on bytecodeinterpretation and JITing, thus bridging the gap between ahead-of-time and just-in-time translation.

Tags

Users

  • @derkling
  • @gron

Comments and Reviews