Cargando…

Behavioural Analysis of Tracing JIT Compiler Embedded in the Methodical Accelerator Design Software

This thesis investigates with a structured and precise analysis the behaviour of programs execution during trace-based just-in-time (JIT) compilation. The work was carried out in the context of the tracing just-in-time compiler LuaJIT embedded in the Next Generation of the Methodical Accelerator Des...

Descripción completa

Detalles Bibliográficos
Autor principal: D'Andrea, Dario
Lenguaje:eng
Publicado: 2019
Materias:
Acceso en línea:http://cds.cern.ch/record/2692915
Descripción
Sumario:This thesis investigates with a structured and precise analysis the behaviour of programs execution during trace-based just-in-time (JIT) compilation. The work was carried out in the context of the tracing just-in-time compiler LuaJIT embedded in the Next Generation of the Methodical Accelerator Design software (MAD-NG). MAD software series provides a scripting language, which is a de facto standard to describe particle accelerators, simulate beam dynamics, and optimise beam optics at CERN. It has to process a massive quantity of data and operations with user-defined expressions during simulation, hence it needs to be very efficient. A technology that fulfils these demands is LuaJIT, a trace-based just-in-time compiler for the Lua programming language. Trace-based just in time compilation is a technique used for dynamic interpreted languages. It consists of recording a linear path of frequently executed operations, so-called trace, compiling it to native machine code and executing it. To accomplish this work we proposed some extensions for the existing analysis tools provided by LuaJIT and we realised some post-processing analysis to inspect the traces generated by the JIT during the execution of a program. It is necessary to understand all the mechanisms performed by a tracing JIT compiler under the hood in order to better profit from trace-based just-in-time compilation. The consciousness of the internal mechanisms behind a tracing JIT compiler leads to take high-level software decision in JIT-friendly style.