R on Satori
R’s PowerPC support is currently limited, and there may be issues trying to install it from source. R can instead be run on Satori using either a Spack build or a container.
Getting Started with R
A fast way to get R running on Satori is to load the Spack build
module load spack-flat
module load r
R
Installing Packages
To avoid R packages taking up space on home, you can consider setting the R library path inside /nobackup, e.g.
.libPaths("/nobackup/users/{username}/packages/R")
R packages can be installed as usual:
install.packages("ggplot2")
A Simple Batch Script Example
Here is a simple example of a batch script for running a small R job.
#!/bin/bash
#SBATCH -J my_r_job
#SBATCH -o my_r_job.out
#SBATCH -e my_r_job.err
#SBATCH --mail-user=XXXXXXX@mit.edu
#SBATCH --mail-type=ALL
#SBATCH --gres=gpu:1
#SBATCH --nodes=1
#SBATCH --mem=50G
#SBATCH --time=2:00:00
module add spack-flat
module add r
Rscript script.R
R and Python
With the R Spack build, it is possible to interface between R and Python using rpy2. However, as this uses multiple environments, it may break things.
module load spack-flat
module load r
conda activate {env_name}
{env_dir}/{env_name}/bin/python3 -m pip install rpy2
{env_dir}/{env_name}/bin/python3 -c "import rpy2"
Running R in a container
It is also possible to run R within a container, which has the advantage of letting you work with R in a more closed system. This involves pulling the docker://ppc64le/r-base container, which can be done by
cd /nobackup/users/$USER/containers
singularity pull r-base.img docker://ppc64le/r-base
For installation and other interactive tasks you can launch the container in interactive mode
cd /nobackup/users/$USER/containers
singularity shell r-base.img
R
install.packages("ggplot2")
You can also run R scripts by executing the container. The following example also binds a local folder /nobackup/users/{username}/project_folder to the container as /project_folder to allow for reading and writing data to disk.
cd /nobackup/users/$USER/containers
singularity exec --bind /nobackup/users/$USER/project_folder:/project_folder r-base.img Rscript script.R