Toward efficient interactions between Python and native libraries
Jialiang Tan, Yu Chen, Zhenming Liu, Bin Ren, Shuaiwen Leon Song, Xipeng Shen, Xu Liu
Abstract
Python has become a popular programming language because of its excellent programmability. Many modern software packages utilize Python for high-level algorithm design and depend on native libraries written in C/C++/Fortran for efficient computation kernels. Interaction between Python code and native libraries introduces performance losses because of the abstraction lying on the boundary of Python and native libraries. On the one side, Python code, typically run with interpretation, is disjoint from its execution behavior. On the other side, native libraries do not include program semantics to understand algorithm defects.
To understand the interaction inefficiencies, we extensively study a large collection of Python software packages and categorize them according to the root causes of inefficiencies. We extract two inefficiency patterns that are common in interaction inefficiencies. Based on these patterns, we develop PieProf, a lightweight profiler, to pinpoint interaction inefficiencies in Python applications. The principle of PieProf is to measure the inefficiencies in the native execution and associate inefficiencies with high-level Python code to provide a holistic view. Guided by PieProf, we optimize 17 realworld applications, yielding speedups up to 6.3× on application level.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 2ef49a55-6a17-45ec-9223-7f9476ed1320Cited by top-tier papers3
- Triangulating Python Performance Issues with SCALENEEmery D. Berger, Sam Stern, Juan Altmayer PizzornoOSDI 2023 · 25 citations
- Detecting Memory Errors in Python Native Code by Tracking Object Lifecycle with Reference CountXutong Ma, Jiwei Yan, Hao Zhang, Jun Yan et al.ASE 2023 · 2 citations
- Generating Energy-Efficient Code via Large-Language Models - Where are we now?Radu Apsan, Vincenzo Stoico, Michel Albonico, Rudra Dhar et al.ICSE 2026
Builds on1
Related papers
- Discovering Parallelisms in Python ProgramsSiwei Wei, Guyang Song, Senlin Zhu, Ruoyi Ruan et al.FSE 2023 · 1 citation
- Pyriscope: Precise and Low-Overhead Python Control Flow Tracing via Sparse Hardware-Based EventsXinchen Yao, Wu Daiyou, Zhiqiang ZuoOOPSLA 2026
- PerFlow: a domain specific framework for automatic performance analysis of parallel applicationsYuyang Jin, Haojie Wang, Runxin Zhong, Chen Zhang et al.PPoPP 2022 · 10 citations
- Dynamic Generation of Python Bindings for HPC KernelsSteven Zhu, Nader Al Awar, Mattan Erez, Milos GligoricASE 2021 · 3 citations
- PyXray: Practical Cross-Language Call Graph Construction through Object Layout AnalysisGeorgios Alexopoulos, Thodoris Sotiropoulos, Georgios Gousios, Zhendong Su et al.ICSE 2026
