Mr. Simon Burton (National ICT Australia)
PyJIT is a framework for providing just-in-time compilation from within Python programs. The idea is to generate machine code at runtime, and inline our data as we go. This can provide significant speed-ups versus compiled code, by reducing memory bandwidth use and simplifying the executable code. At the core we use the Low Level Virtual Machine (LLVM) which has facilities for creating machine dependant code on the fly. PyJIT handles conversion to LLVM Static Single Assignment form, and has a compiler that accepts a subset of the Python syntax, including basic control flow. We demonstrate applications in: vectorized operations and numerical linear algebra, tree structures for machine learning, and optimization techniques using interval arithmetic.