High performance Python through workload acceleration with OMR JitBuilder

Thumbnail Image



Journal Title

Journal ISSN

Volume Title


University of New Brunswick


Python remains one of the most popular programming languages in many domains including scientific computing. Its reference implementation, CPython, is by far the most used version. CPython's runtime is bytecode-interpreted and leaves much to be desired when it comes to performance. Several attempts have been made to improve CPython's performance such as reimplementing performance-critical code in a more high-performance language (e.g. C, C++, Rust), or, transpiling Python source code to a more high-performance language, which is then called from within CPython through some form of FFI mechanism. Another approach is to JIT compile performance-critical Python methods or utilize alternate implementations that include a JIT compiler. JitBuilder provides a simplified interface to the underlying compiler technology available in Eclipse OMR. We propose using JitBuilder to accelerate performance-critical workloads in Python. By creating Python bindings to JitBuilder's public interface, we can generate native code callable from within CPython without any modifications to its runtime. Results demonstrate that our approach rivals and in many cases outperforms state-of-the-art JIT compiler based approaches in the current ecosystem { namely, Numba and PyPy.