Online presentation:
https://drive.google.com/file/d/0B7N7RhxAvGVgOU5tWmJMUDBGQUE/view
Keywords: compiler, code analysis, performance
Webpages:
https://github.com/nick-ulle/rstatic,
https://github.com/duncantl/Rllvm R allows useRs to focus on the problems they want to solve by abstracting away the details of the hardware. This is a major contributor to
R’s success as a data analysis language, but also makes
R too slow and resource-hungry for certain tasks. Traditionally, useRs have worked around this limitation by rewriting bottlenecks in
Fortran,
C, or
C++. These languages provide a substantial performance boost at the cost of abstraction, a trade-off that useRs should not have to face.
This talk introduces a collection of packages for analyzing, optimizing, and building compilers for
R code, extending earlier work by Temple Lang (2014). By building on top of the
LLVM Compiler Infrastructure (Lattner and Adve 2004), a mature open-source library for native code generation, these tools enable translation of
R code to specialized machine code for a variety of hardware. Moreover, the tools are extensible and ease the creation of efficient domain-specific languages based on
R, such as
nimble and
dplyr. Potential applications will be discussed and a simple compiler (inspired by
Numba) for mathematical
R code will be presented as a demonstration.
References Lattner, Chris, and Vikram Adve. 2004. “LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation.” In
Proceedings of the International Symposium on Code Generation and Optimization: Feedback-Directed and Runtime Optimization, 75. CGO ’04. Washington, DC, USA: IEEE Computer Society.
Temple Lang, Duncan. 2014. “Enhancing R with Advanced Compilation Tools and Methods.”
Statistical Science 29 (2). Institute of Mathematical Statistics: 181–200.