Skip to main content

Complicated models, bigger simulation studies, and larger datasets mean that R code can take a long time to run. This workshop will cover speeding up R code and scripts by using parallelism on high performance compute systems and improving runtime efficiency by leveraging Rcpp and other expeditious C++ based packages. No prior C++ experience is required!  An understanding of the concepts behind parallel computing and interoperating with compiled code, along with hands-on practice will be the mainstay of the workshop.

We will cover writing parallelized code for local and remote machines, along with tips and tricks to make the most out of your compute time. Key topics include parallelizing using multithreaded linear algebra libraries, parallelizing within R itself, efficient memory usage on large core-count machines, with a light dusting of hardware intuition. We will emphasize re-using existing code and scripts by making minimal modifications to allow for parallelism. As well, we will learn to profile long-running code to identify hot loops that are candidates for acceleration using compiled code. Packages such as Rfast, Rcpp, and RcppArmadillo will be used to improve the compute efficiency of repeatedly executed code.

To smooth out the setup process, please have RStudio and R installed, along with Rtools (on Windows) or Xcode (on Mac) or gcc (on Linux). As well, we will be relying on the Rcpp, RcppArmadillo, Rfast, Rfast2, pbapply, profvis, and bench packages; please make sure these packages are installed as well. If you don’t already have access to a cluster, Compute Canada Database (CCDB) offers free access to a wide range of academic and non-academic researchers and students. Please see https://ccdb.computecanada.ca/security/login for more information and to apply for an account. It may take a couple of weeks to get approved and activate an account, so please create your account prior to the workshop if you are interested. Nevertheless, most examples provided will still run locally on a personal laptop for instructional purposes.

Note:

Session 1: (9:00-10:20)

Coffee break: (10:20-10:40)

Session 2: (10:40-12:00)

Lunch break: (12:00-13:30)

Session 3: (13:30-14:50)

Coffee break: (14:50-15:10).

Session 4: (15:10-16:30).

Room
2308
Presenter(s)
Jason Hou-Liu
University of Waterloo
Date and Time
-