Runtime Compilation of Array-Oriented Python Programs
Department of Computer Science, New York University
New York University, 2014
@phdthesis{rubinsteyn2014runtime,
title={Runtime Compilation of Array-Oriented Python Programs},
author={Rubinsteyn, Alex},
year={2014},
school={New York University}
}
The Python programming language has become a popular platform for data analysis and scientific computing. To mitigate the poor performance of Python’s standard interpreter, numerically intensive computations are typically offloaded to library functions written in high-performance compiled languages such as Fortran or C. When there is no efficient library implementation available for a particular algorithm, the programmer must accept suboptimal performance or switch to a low-level language to implement the routine. This thesis seeks to give Python programmers a means to implement high-performance algorithms in a high-level form. We present Parakeet, a runtime compiler for an array-oriented subset of Python. Parakeet selectively augments the standard Python interpreter by compiling and executing functions explicitly marked for acceleration by the programmer. Parakeet uses runtime type specialization to eliminate the performance-defeating dynamicism of untyped Python code. Parakeet’s pervasive use of data parallel operators as a means for implementing array operations enables high-level restructuring optimization and compilation to parallel hardware such as multi-core CPUs and graphics processors. We evaluate Parakeet on a collection of numerical benchmarks and demonstrate its dramatic capacity for accelerating array-oriented Python programs.
March 2, 2015 by hgpu