BLACK LIVES MATTER
Join us and donate
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
An easy way to access R packages
Let us host your Shiny applications
A single home for R & Python Data Science Teams
RStudio for the Enterprise
Easily share your insights
Control and distribute packages
RStudio
RStudio Server
Shiny Server
R Packages
RStudio Cloud
RStudio Public Package Manager
shinyapps.io
RStudio Team
RStudio Server Pro
RStudio Connect
RStudio Package Manager
Webinars RStudio Essentials
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.