Ehud Altman, Kenneth R. Brown, et al.
PRX Quantum
The performance of R, a popular data analysis language, was never properly understood. Some claimed their R codes ran as efficiently as any native code, others quoted orders of magnitude slowdown of R codes with respect to equivalent C implementations.We found both claims to be true depending on how an R code is written. This paper introduces a first classification of R programming styles into Type I (looping over data), Type II (vector programming), and Type III (glue codes). The most serious overhead of R are mostly manifested on Type I R codes, whereas many Type III R codes can be quite fast. This paper focuses on improving the performance of Type I R codes. We propose the ORBIT VM, an extension of the GNU R VM, to perform aggressive removal of allocated objects and reduction of instruction path lengths in the GNU R VM via profile-driven specialization techniques. The ORBIT VM is fully compatible with the R language and is purely based on interpreted execution. It is a specialization JIT and runtime focusing on data representation specialization and operation specialization. For our benchmarks of Type I R codes, ORBIT is able to achieve an average of 3.5X speedups over the current release of GNU R VM and outperforms most other R optimization projects that are currently available. Copyright © 2014 by the Association for Computing Machinery, Inc. (ACM).
Ehud Altman, Kenneth R. Brown, et al.
PRX Quantum
R.B. Morris, Y. Tsuji, et al.
International Journal for Numerical Methods in Engineering
Imran Nasim, Michael E. Henderson
Mathematics
Jianke Yang, Robin Walters, et al.
ICML 2023