English

ROSA: R Optimizations with Static Analysis

Programming Languages 2017-07-04 v2 Databases Performance

Abstract

R is a popular language and programming environment for data scientists. It is increasingly co-packaged with both relational and Hadoop-based data platforms and can often be the most dominant computational component in data analytics pipelines. Recent work has highlighted inefficiencies in executing R programs, both in terms of execution time and memory requirements, which in practice limit the size of data that can be analyzed by R. This paper presents ROSA, a static analysis framework to improve the performance and space efficiency of R programs. ROSA analyzes input programs to determine program properties such as reaching definitions, live variables, aliased variables, and types of variables. These inferred properties enable program transformations such as C++ code translation, strength reduction, vectorization, code motion, in addition to interpretive optimizations such as avoiding redundant object copies and performing in-place evaluations. An empirical evaluation shows substantial reductions by ROSA in execution time and memory consumption over both CRAN R and Microsoft R Open.

Keywords

Cite

@article{arxiv.1704.02996,
  title  = {ROSA: R Optimizations with Static Analysis},
  author = {Rathijit Sen and Jianqiao Zhu and Jignesh M. Patel and Somesh Jha},
  journal= {arXiv preprint arXiv:1704.02996},
  year   = {2017}
}

Comments

A talk on this work will be presented at RIOT 2017 (3rd Workshop on R Implementation, Optimization and Tooling)

R2 v1 2026-06-22T19:13:15.138Z