In this chapter, we will learn how to use a form of parallelism called message passing, written in the widely adopted Message Passing Interface (MPI) standard, and how to utilize MPI-based parallel routines written in other programming languages directly from an R script.
We will start with a simple "Hello World" MPI program, and transform it into an R library package. This will demonstrate how you can take an existing MPI code written in C and make it directly callable from R.
We will then delve into the architecture of an MPI-based R package, commonly known as Simple Parallel R Interface (SPRINT). SPRINT provides a suite of MPI-parallel routines of particular use to bio-informaticians and life scientists for genomic analysis. We will show how you can further extend its utility by adding your own parallel functionality to the package.
Finally, we will explore the performance characteristics of a SPRINT-based genomics analysis...