Thu 29 Oct 2015 11:15 - 11:37 at Grand Station 2 - 6. Compilation and Tools Chair(s): Gorel Hedin

R is a popular dynamic language designed for statistical computing. Despite R's huge user base, the inefficiency in R's language implementation becomes a major pain-point in everyday use as well as an obstacle to apply R to solve large scale analytics problems. The two most common approaches to improve the performance of dynamic languages are: implementing more efficient interpretation strategies and extending the interpreter with Just-In-Time (JIT) compiler. However, both approaches require significant changes to the interpreter, and complicate the adoption by development teams as a result. This paper presents a new approach to improve execution efficiency of R programs by vectorizing the widely used Apply class of operations. Apply accepts two parameters: a function and a collection of input data elements. The standard implementation of Apply iteratively invokes the input function with each element in the data collection. Our approach combines data transformation and function vectorization to convert the looping-over-data execution of the standard Apply into a single invocation of a vectorized function that contains a sequence of vector operations over the input data. This conversion can significantly speed-up the execution of Apply operations in R by reducing the number of interpretation steps. We implemented the vectorization transformation as an R package. To enable the optimization, all that is needed is to invoke the package, and the user can use a normal R interpreter without any changes. The evaluation shows that the proposed method delivers significant performance improvements for a collection of data analysis algorithm benchmarks. This is achieved without any native code generation and using only a single-thread of execution.

Thu 29 Oct

Displayed time zone: Eastern Time (US & Canada) change

10:30 - 12:00
6. Compilation and ToolsOOPSLA at Grand Station 2
Chair(s): Gorel Hedin Lund University
10:30
22m
Talk
Declarative Fence InsertionOOPSLA Artifact
OOPSLA
John Bender University of California at Los Angeles, USA, Mohsen Lesani MIT, Jens Palsberg University of California at Los Angeles, USA
Link to publication
10:52
22m
Talk
Finding Deep Compiler Bugs via Guided Stochastic Program Mutation
OOPSLA
Vu Le University of California at Davis, USA, Chengnian Sun University of California at Davis, USA, Zhendong Su University of California at Davis, USA
DOI
11:15
22m
Talk
Vectorization of Apply to Reduce Interpretation Overhead of ROOPSLA Artifact
OOPSLA
Haichuan Wang University of Illinois at Urbana-Champaign, David Padua University of Illinois at Urbana-Champaign, Peng Wu Huawei America Lab
DOI
11:37
22m
Talk
Synthesizing Java Expressions from Free-Form Queries
OOPSLA
Tihomir Gvero EPFL, Switzerland, Viktor KunĨak EPFL, Switzerland
Link to publication