Eliminating Abstraction Overhead of Java Stream Pipelines using Ahead-of-Time Program Optimization
Fri 20 Nov 2020 02:00 - 02:20 at SPLASH-I - R-4 Chair(s): Sylvain Boulmé, Gushu Li
Java 8 introduced streams that allow developers to work with collections of data using functional-style operations. Streams are often used in pipelines of operations for processing the data elements, which leads to concise and elegant program code. However, the declarative data processing style comes at a cost. Compared to processing the data with traditional imperative language mechanisms, constructing stream pipelines requires extra heap objects and virtual method calls, which often results in significant run-time overheads.
In this work we investigate how to mitigate these overheads to enable processing data in the declarative style without sacrificing performance. We argue that ahead-of-time bytecode-to-bytecode transformation is a suitable approach to optimization of stream pipelines, and we present a static analysis that is designed to guide such transformations. Experimental results show a significant performance gain, and that the technique works for realistic stream pipelines. For 10 of 11 micro-benchmarks, the optimizer is able to produce bytecode that is as effective as hand-written imperative-style code. Additionally, 77% of 6879 stream pipelines found in real-world Java programs are optimized successfully.
Thu 19 NovDisplayed time zone: Central Time (US & Canada) change
13:00 - 14:20 | R-4OOPSLA at SPLASH-I +12h Chair(s): Robert Rand University of Chicago, Rohan Padhye Carnegie Mellon University | ||
13:00 20mTalk | Assertion-Based Optimization of Quantum Programs OOPSLA Link to publication DOI Media Attached | ||
13:20 20mTalk | Dataflow-Based Pruning for Speeding up Superoptimization OOPSLA Manasij Mukherjee University of Utah, Pranav Kant University of Utah, Zhengyang Liu University of Utah, John Regehr University of Utah Link to publication DOI Media Attached | ||
13:40 20mTalk | Enabling Accuracy-Aware Quantum Compilers using Symbolic Resource Estimation OOPSLA Link to publication DOI Media Attached | ||
14:00 20mTalk | Eliminating Abstraction Overhead of Java Stream Pipelines using Ahead-of-Time Program Optimization OOPSLA Link to publication DOI Pre-print Media Attached |
Fri 20 NovDisplayed time zone: Central Time (US & Canada) change
01:00 - 02:20 | R-4OOPSLA at SPLASH-I Chair(s): Sylvain Boulmé Grenoble Alps University / CNRS / Grenoble INP / VERIMAG, Gushu Li University of California at Santa Barbara | ||
01:00 20mTalk | Assertion-Based Optimization of Quantum Programs OOPSLA Link to publication DOI Media Attached | ||
01:20 20mTalk | Dataflow-Based Pruning for Speeding up Superoptimization OOPSLA Manasij Mukherjee University of Utah, Pranav Kant University of Utah, Zhengyang Liu University of Utah, John Regehr University of Utah Link to publication DOI Media Attached | ||
01:40 20mTalk | Enabling Accuracy-Aware Quantum Compilers using Symbolic Resource Estimation OOPSLA Link to publication DOI Media Attached | ||
02:00 20mTalk | Eliminating Abstraction Overhead of Java Stream Pipelines using Ahead-of-Time Program Optimization OOPSLA Link to publication DOI Pre-print Media Attached |