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): Gushu Li, Sylvain Boulmé
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 Nov Times are displayed in time zone: Central Time (US & Canada) change
13:00 - 14:20: R-4OOPSLA at SPLASH-I +12h Chair(s): Rohan PadhyeCarnegie Mellon University, Robert RandUniversity of Chicago | |||
13:00 - 13:20 Talk | Assertion-Based Optimization of Quantum Programs OOPSLA Link to publication DOI Media Attached | ||
13:20 - 13:40 Talk | Dataflow-Based Pruning for Speeding up Superoptimization OOPSLA Manasij MukherjeeUniversity of Utah, Pranav KantUniversity of Utah, Zhengyang LiuUniversity of Utah, John RegehrUniversity of Utah Link to publication DOI Media Attached | ||
13:40 - 14:00 Talk | Enabling Accuracy-Aware Quantum Compilers using Symbolic Resource Estimation OOPSLA Link to publication DOI Media Attached | ||
14:00 - 14:20 Talk | Eliminating Abstraction Overhead of Java Stream Pipelines using Ahead-of-Time Program Optimization OOPSLA Link to publication DOI Pre-print Media Attached |
Fri 20 Nov Times are displayed in time zone: Central Time (US & Canada) change
01:00 - 02:20: R-4OOPSLA at SPLASH-I Chair(s): Gushu LiUniversity of California at Santa Barbara, Sylvain BoulméGrenoble Alps University / CNRS / Grenoble INP / VERIMAG | |||
01:00 - 01:20 Talk | Assertion-Based Optimization of Quantum Programs OOPSLA Link to publication DOI Media Attached | ||
01:20 - 01:40 Talk | Dataflow-Based Pruning for Speeding up Superoptimization OOPSLA Manasij MukherjeeUniversity of Utah, Pranav KantUniversity of Utah, Zhengyang LiuUniversity of Utah, John RegehrUniversity of Utah Link to publication DOI Media Attached | ||
01:40 - 02:00 Talk | Enabling Accuracy-Aware Quantum Compilers using Symbolic Resource Estimation OOPSLA Link to publication DOI Media Attached | ||
02:00 - 02:20 Talk | Eliminating Abstraction Overhead of Java Stream Pipelines using Ahead-of-Time Program Optimization OOPSLA Link to publication DOI Pre-print Media Attached |