The premier IDE for R
RStudio anywhere using a web browser
Put Shiny applications online
Shiny, R Markdown, Tidyverse and more
Do, share, teach and learn data science
Let us host your Shiny applications
The premier software bundle for data science teams
RStudio for the Enterprise
Connect data scientists with decision makers
Control and distribute packages
RcppParallel provides a complete toolkit for creating safe, portable, high-performance parallel algorithms
August 31, 2016
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. In this talk 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.
Kevin is a software engineer on the RStudio IDE team. He is an active member of the R community, member of the Rcpp core team, and has contributed to a wide variety of packages in the R ecosystem. He is the maintainer of the popular reticulate, renv, packrat, and RcppParallel R packages.