Abstract
Data science workloads frequently include Python code, but Python’s dynamic nature makes efficient execution hard. Traditional approaches either treat Python as a black box, missing out on optimization potential, or are limited to a narrow domain. However, a deep and efficient integration of user-defined Python code into data processing systems requires extracting the semantics of the entire Python code. In this paper, we propose a novel approach for extracting the high-level semantics by transforming general Python functions into program generators that generate a statically-typed IR when executed. The extracted IR then allows for high-level, domain-specific optimizations and the generation of efficient C++ code. With our prototype implementation, HiPy, we achieve single-threaded speedups of 2–20x for many workloads. Furthermore, HiPy is also capable of accelerating Python code in other domains like numerical data, where it can sometimes even outperform specialized compilers.
Author supplied keywords
Cite
CITATION STYLE
Jungmair, M., Engelke, A., & Giceva, J. (2024). HiPy: Extracting High-Level Semantics from Python Code for Data Processing. Proceedings of the ACM on Programming Languages, 8(OOPSLA2). https://doi.org/10.1145/3689737
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.