Best-Effort Lazy Evaluation for Python Software Built On APIs
Fri 16 Jul 2021 19:00 - 19:20 at ECOOP 2 - Parallelism / Runtimes (time band 1) Chair(s): Colin Gordon
This paper focuses on an important optimization opportunity in Python-hosted domain-specific languages (DSLs): the use of laziness for optimization, whereby multiple API calls are deferred and then optimized prior to execution (rather than executing eagerly, which would require executing each call in isolation). In existing supports of lazy evaluation, laziness is “terminated” as soon as control passes back to the host language in any way, limiting opportunities for optimization. This paper presents Cunctator, a framework that extends this laziness to more of the Python language, allowing intermediate values from DSLs like NumPy or Pandas to flow back to the host Python code without triggering evaluation. This exposes more opportunities for optimization and, more generally, allows for larger computation graphs to be built, producing 1.03-14.2X speedups on a set of programs in common libraries and frameworks.
Fri 16 JulDisplayed time zone: Brussels, Copenhagen, Madrid, Paris change
02:00 - 03:20 | Program Analysis / Runtimes (time band 2)ECOOP Technical Papers at ECOOP 1 Chair(s): Werner Dietl University of Waterloo | ||
02:00 20mTalk | Gradual Program Analysis for Null Pointers ECOOP Technical Papers Sam Estep Carnegie Mellon University, Jenna DiVincenzo (Wise) Carnegie Mellon University, Jonathan Aldrich Carnegie Mellon University, Éric Tanter University of Chile, Johannes Bader Jane Street, Joshua Sunshine Carnegie Mellon University DOI Pre-print Media Attached File Attached | ||
02:20 20mTalk | Best-Effort Lazy Evaluation for Python Software Built On APIs ECOOP Technical Papers DOI | ||
02:40 20mTalk | Lifted Static Analysis of Dynamic Program Families by Abstract Interpretation ECOOP Technical Papers DOI | ||
03:00 20mTalk | Accelerating Object-Sensitive Pointer Analysis by Exploiting Object Containment and Reachability ECOOP Technical Papers Dongjie He University of New South Wales, Jingbo Lu UNSW Sydney, Yaoqing Gao Huawei Canada, Jingling Xue UNSW DOI Pre-print |
19:00 - 20:00 | Parallelism / Runtimes (time band 1)ECOOP Technical Papers at ECOOP 2 Chair(s): Colin Gordon Drexel University | ||
19:00 20mTalk | Best-Effort Lazy Evaluation for Python Software Built On APIs ECOOP Technical Papers DOI | ||
19:20 20mTalk | Linear Promises: Towards Safer Concurrent Programming ECOOP Technical Papers Ohad Rau Georgia Institute of Technology, Caleb Voss Georgia Institute of Technology, Vivek Sarkar Georgia Institute of Technology DOI | ||
19:40 20mTalk | Enabling Additional Parallelism in Asynchronous JavaScript Applications ECOOP Technical Papers DOI |