ECOOP 2024
Mon 16 - Fri 20 September 2024 Vienna, Austria
co-located with ISSTA/ECOOP 2024
Mon 16 Sep 2024 10:45 - 11:00 at EI 7 - Compilation and Runtimes Chair(s): Stefan Marr

Dynamic programming languages such as Python offer expressive power and programmer productivity at the expense of performance. Although the topic of optimizing Python has received considerable attention over the years, a key obstacle remains elusive: C extensions. Time and again, optimized run-time environments, such as JIT compilers and optimizing interpreters, fall short of optimizing across C extensions, as they cannot reason about the native code hiding underneath.

To bridge this gap, we present an analysis of C extensions for Python. The analysis data indicates that C extensions come in different varieties. One such variety is to merely speed up a single thing, such as reading a file and processing it directly in C. Another variety offers broad access through an API, resulting in a domain-specific language realized by function calls.

While the former variety of C extensions offer little optimization potential for optimizing run-times, we find that the latter variety does offer considerable optimization potential. This optimization potential rests on dynamic locality that C extensions cannot readily tap. We introduce a new, interpreter-based optimization leveraging this untapped optimization potential called Cross-Module Quickening. The key idea is that C extensions can use an optimization interface to register highly-optimized operations on C extension-specific datatypes. A quickening interpreter uses these information to continuously specialize programs with C extensions.

To quantify the attainable performance potential of going beyond C extensions, we demonstrate a concrete instantiation of Cross-Module Quickening for the interpreter and the popular C extension. We evaluate our implementation with the benchmark suite and report performance improvements by a factor of up to 2.82.

Mon 16 Sep

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

10:30 - 12:00
Compilation and RuntimesTechnical Papers at EI 7
Chair(s): Stefan Marr University of Kent
10:30
15m
Talk
Static Basic Block Versioning
Technical Papers
Manuel Serrano Inria; Université Côte d’Azur, Olivier Melançon DIRO, Université de Montréal, Marc Feeley Université de Montréal
10:45
15m
Talk
Cross Module Quickening - The Curious Case of C Extensions
Technical Papers
Felix Berlakovich μCSRL, CODE Research Institute, University of the Bundeswehr Munich, Stefan Brunthaler μCSRL, CODE Research Institute, University of the Bundeswehr Munich
11:00
15m
Talk
Compiling with Arrays
Technical Papers
David Richter Technical University of Darmstadt, Timon Böhler Technical University of Darmstadt, Pascal Weisenburger University of St. Gallen, Mira Mezini TU Darmstadt; hessian.AI; National Research Center for Applied Cybersecurity ATHENE
Pre-print
11:15
15m
Talk
The Performance Effects of Virtual-Machine Instruction Pointer Updates
Technical Papers
11:30
15m
Talk
Taking a Closer Look: An Outlier-Driven Approach to Compilation-Time Optimization
Technical Papers
Florian Huemer JKU Linz, David Leopoldseder Oracle Labs, Aleksandar Prokopec Oracle Labs, Raphael Mosaner JKU Linz, Hanspeter Mössenböck JKU Linz
11:45
15m
Talk
Optimizing Layout of Recursive Datatypes with Marmoset
Technical Papers
Vidush Singhal Purdue University, Chaitanya S. Koparkar Indiana University, Joseph Zullo Purdue University, Artem Pelenitsyn Purdue University, Michael Vollmer University of Kent, Mike Rainey Carnegie Mellon University, Ryan R. Newton Purdue University, Milind Kulkarni Purdue University
DOI Pre-print

Information for Participants
Mon 16 Sep 2024 10:30 - 12:00 at EI 7 - Compilation and Runtimes Chair(s): Stefan Marr
Info for room EI 7:

Map: https://tuw-maps.tuwien.ac.at/?q=CDEG13

Room tech: https://raumkatalog.tiss.tuwien.ac.at/room/15417