Search code examples
rbashhpcqsub

How to use local R installation on HPC with qsub


I work with a cluster where it is not possible to globally install a specific R version. Given that I built a specific version for R on folder:

<generic_path>/R/R-X.Y.Z

and I installed some packages locally on:

<generic_path/R/packages

how can I set, in a shell script (bash), the environment variables and aliases to run this specific R version, loading the packages from the local package directory?


Solution

  • Option 1: Using a shell script for HPC (in my case a qsub script), this is possible by running a shell script (e.g. in bash), which contains the following lines:

    alias R="<path_to_R>/R/R-X.Y.Z/bin/R"
    export R_LIBS="<path_to_R>/R/packages"
    export PATH="<path_to_R>/R/R-X.Y.Z/bin:${PATH}"
    

    The script (here I named it makeenv.sh) may be run inside the qsub script with:

    source makeenv.sh
    

    Option 2: Depending on your HPC system, you might have module avail, module load commands, if so then use:

    myBsubFile.sh

    #!/bin/bash
    # some #BSUB headers...
    # ...    
    
    module load /R/R-X.Y.Z
    Rscript myRcode.R
    

    Then load libraries in the R script as:

    myRcode.R

    library("data.table", lib.loc = "path/to/my/libs")
    # some more R code...