Modern computers and processors provide many advanced facilities for the concurrent, or parallel, execution of code. While R is a fundamentally a single-threaded program, it can call into multi-threading code, provided that such code interacts with R in a thread-safe manner. However, writing concurrent programs that run both safely and correctly is a very difficult task, and requires substantial expertise when working with the primitives provided by most programming languages or libraries. RcppParallel provides a complete toolkit for creating safe, portable, high-performance parallel algorithms, built on top of the Intel "Threading Building Blocks" (TBB) and "TinyThread" libraries. In particular, RcppParallel provides two high-level operations -- 'parallelFor', and 'parallelReduce', which provide a framework for the safe, performant implementation of many kinds of parallel algorithms. We'll showcase how RcppParallel might be used to implement a parallel algorithm, and how the generated routine could be used in an R package.
Software engineer on a team using C++, Java, JavaScript, and R to build an IDE for the R programming language.Say hi if you want to talk about how weird / awesome R is :)
Tuesday June 28, 2016 10:48am - 11:06am PDT
SIEPR 130