TY - JOUR AU - Seibert, Stanley AB - Numba: A LLVM-based Python JIT Compiler Siu Kwan Lam slam@continuum.io Continuum Analytics Austin, Texas Antoine Pitrou apitrou@continuum.io Continuum Analytics Austin, Texas Stanley Seibert sseibert@continuum.io Continuum Analytics Austin, Texas ABSTRACT Dynamic, interpreted languages, like Python, are attractive for domain-experts and scientists experimenting with new ideas. However, the performance of the interpreter is often a barrier when scaling to larger data sets. This paper presents a just-in-time compiler for Python that focuses in scientific and array-oriented computing. Starting with the simple syntax of Python, Numba compiles a subset of the language into efficient machine code that is comparable in performance to a traditional compiled language. In addition, we share our experience in building a JIT compiler using LLVM[1]. Categories and Subject Descriptors D.3.4 [Programming Languages]: Processors--Compilers, Optimization General Terms Languages, Performance allows binding to high performance computing libraries that are traditionally written in C or FORTRAN, such as BLAS and LAPACK. The ndarray object also supports array expressions: using Python operators on ndarrays will trigger element-wise operations that are implemented in C efficiently. This provides a large speedup over interpreted Python, where looping over the elements in Python is inefficient due to the multiple layers of indirection inside interpreted code. TI - Numba: a LLVM-based Python JIT compiler DA - 2015-11-15 UR - https://www.deepdyve.com/lp/association-for-computing-machinery/numba-a-llvm-based-python-jit-compiler-uUupTmzXYJ DP - DeepDyve ER -