JIT Compilers - Addressing Bottlenecks in Throughput and LatencyMoreVMs Invited Talk
JIT compilation promises to deliver application portability and improved runtime performance through dynamic code generation and optimization. Used widely in the implementation of programming languages such as JavaScript, Java, Kotlin and C#, JIT compilation has found application from small embedded systems to HPC, web browsers and mobile devices. A more recent trend includes the use of JIT compiled languages and JIT compilers in Cloud settings. However, it is well known that JIT compilation introduces startup delays and compilation overhead during runtime. Both of these factors are particularly undesirable in Cloud environments, where high responsiveness and cost of utilized compute and memory resources are major considerations. Redundant JIT is particularly expensive for users who pay for resources as and when they use them, e.g. in FaaS settings. In this presentation we explore opportunities for reducing JIT compilation latency and increasing its throughput, including parallelization, machine learning guided speculation and code sharing, hardware acceleration and hybrid compilation paradigms.