R
R is a programming language and a software environment for statistical calculations and graphics.
Running Batch Jobs
Soroban
The program can be called directly without a module having to be loaded first. However, there is another version which has been compiled against Intel's optimised mathematics routines in the Math Kernel Library or MKL, which should make it much faster for certain operations. To use the MKL-enabled version, call
module load r
A simple script which can be submitted to Slurm could look like the following:
#!/bin/bash #SBATCH --job-name=my_R_job
#SBATCH --mem=2048
#SBATCH --time=1-12:00:00
module load r Rscript script.r arg1 arg2
The R package Rmpi
can be used to run parallel jobs. In this case the number of tasks must be specified using the SLURM parameter --ntasks
. However, the number of process passed to mpirun
via the option -np
should be just 1
:
#!/bin/bash #SBATCH --job-name=my_Rmpi_job
#SBATCH --mem=2048
#SBATCH --ntasks=8
module add r openmpi/intel mpirun -np 1 R --no-save < mpi_job.r
Installing Packages
Users can install package themselves by starting R
and then running the following command:
install.packages("somepackage")
Users who wish to build their own packages and use the MKL, must load the corresponding modules:
module load intel/compiler intel/mkl
and add the appropriate environment to the definition of PKG_LIBS
in the file Makevars
:
PKG_LIBS = `$(R_HOME)/bin/Rscript -e "Rcpp:::LdFlags()"` -l$(BLASLIB)
Using other mathematical libraries
The version of R which is available without module
is regularly updated and normally corresponds to the latest version available. By default, this version is linked dynamically to OpenBLAS. However, in many cases it may be worthwhile using a different library for linear algebra operations.
This can be achieved by loading the desired library before any others. This can be done by setting the environment variable LD_PRELOAD
, e.g.:
module add intel/compiler/64/16.0
export LD_PRELOAD=${MKLROOT}/lib/intel64/libmkl_rt.so
Rscript myscript.r