Book Image

Mastering Parallel Programming with R

By : Simon R. Chapple, Terence Sloan, Thorsten Forster, Eilidh Troup
Book Image

Mastering Parallel Programming with R

By: Simon R. Chapple, Terence Sloan, Thorsten Forster, Eilidh Troup

Overview of this book

R is one of the most popular programming languages used in data science. Applying R to big data and complex analytic tasks requires the harnessing of scalable compute resources. Mastering Parallel Programming with R presents a comprehensive and practical treatise on how to build highly scalable and efficient algorithms in R. It will teach you a variety of parallelization techniques, from simple use of R’s built-in parallel package versions of lapply(), to high-level AWS cloud-based Hadoop and Apache Spark frameworks. It will also teach you low level scalable parallel programming using RMPI and pbdMPI for message passing, applicable to clusters and supercomputers, and how to exploit thousand-fold simple processor GPUs through ROpenCL. By the end of the book, you will understand the factors that influence parallel efficiency, including assessing code performance and implementing load balancing; pitfalls to avoid, including deadlock and numerical instability issues; how to structure your code and data for the most appropriate type of parallelism for your problem domain; and how to extract the maximum performance from your R code running on a variety of computer systems.
Table of Contents (13 chapters)

Summary


In this chapter, you have been shown how to write your own parallel routines and make them callable directly from R programs. You have also learnt how to create your own suite of such parallel routines, and turn them into an R package that you can then reuse in other R programs. The SPRINT package has been introduced, and its architecture examined to show how you can organize your own such package, or instead, use the SPRINT package itself and include your own parallel routines within it.

Finally, the chapter has demonstrated how you can use such an MPI-based R package on a supercomputer to exploit hundreds, and potentially thousands, of cores to dramatically increase the performance of your R programs.

In the next chapter, we switch our attention from exploiting the world's most expensive supercomputers, to the admittedly much easier-to-access supercomputer lurking in your own laptop and desktop, the Graphics Processing Unit (GPU). We will explore how to make use of the GPU's particular...