R is a programming language and free software environment for statistical computing and graphics supported by the R Foundation for Statistical Computing. The R language is widely used among statisticians and data miners for developing statistical software and data analysis. Below are links to pages that are related to R. R is a free software environment for statistical computing and graphics. It compiles and runs on a wide variety of UNIX platforms, Windows and macOS.
Contents
Table of Contents |
---|
Contents
Overview
Module: Example
Code Block |
---|
[]$ module spider r ---------------------------- r: ---------------------------- Versions: r/3.4.4 r/3.5.0-py27 r/3.5.0 r/3.5.1s r/3.5.2-py27 r/3.5.2 r/3.5.3-py27 r/3.5.3 r/3.6.1-intel r/3.6.1-py27 r/3.6.1 ---------------------------- For detailed information about a specific "r" module (including how to load the modules) use the module's full name. For example: $ module spider r/3.6.1 ---------------------------- []$ module spider r/3.5.1s ---------------------------- r: r/3.5.1s ---------------------------- You will need to load all module(s) on any one of the lines below before the "r/3.5.1s" module is available to load. singularity/2.5.2 singularity/3.1.1 []$ module spider r/3.6.1 ---------------------------- r: r/3.6.1 ---------------------------- You will need to load all module(s) on any one of the lines below before the "r/3.6.1" module is available to load. swset/2018.05 gcc/7.3.0 module load gcc/7.3.0 r/3.6.1 |
Using
Once the modules have been loaded:
Code Block |
---|
[]$ R R version 3.6.1 (2019-07-05) -- "Action of the Toes" Copyright (C) 2019 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. Natural language support but running in an English locale R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > sessionInfo() R version 3.6.1 (2019-07-05) Platform: x86_64-pc-linux-gnu (64-bit) Running under: Storage Matrix products: default BLAS: /pfs/tsfs1/apps/el7-x86_64/u/gcc/7.3.0/r/3.6.1-3rtwrmw/rlib/R/lib/libRblas.so LAPACK: /pfs/tsfs1/apps/el7-x86_64/u/gcc/7.3.0/r/3.6.1-3rtwrmw/rlib/R/lib/libRlapack.so locale: [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 [7] LC_PAPER=en_US.UTF-8 LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices utils datasets methods base loaded via a namespace (and not attached): [1] compiler_3.6.1 > quit() Save workspace image? [y/n/c]: n [@tlog2 ~]$ |
Note:
This software is dependent on the following modules:
gcc/7.3.0
Due to the install process, at this moment in time, you have to explicitly load gcc before loading r. If you try loading r before gcc you will see the following message:
Code Block |
---|
[]$ module load r/3.6.1 Lmod has detected the following error: These module(s) exist but cannot be loaded as requested: "r/3.6.1" Try: "module spider r/3.6.1" to see how to load the module(s). |
R Packages
Below we will give some guidelines on how to install and use various R packages specifically on Teton.
Typically, packages will be installed in your home folder, within the
R
folder, under the platform versionx86_64-pc-linux-gnu-library
, then under amajor.minor
version (without the patch number) folder.
Code Block |
---|
~/R/ x86_64-pc-linux-gnu-library/ 3.5/ 3.6/ |
Packages installed/built with one
major.minor
version will typically not work under another.
R and Intel/MKL
We have a version of r3.6.1 built with the Intel compiler and related MKL (Maths Kernel Library) that follows a request relating to Improving R Performance by installing optimized BLAS/LAPACK libraries.
To use:
Code Block |
---|
[]$ module load r/3.6.1-intel []$ R R version 3.6.1 (2019-07-05) -- "Action of the Toes" Copyright (C) 2019 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) ... > sessionInfo() R version 3.6.1 (2019-07-05) Platform: x86_64-pc-linux-gnu (64-bit) Running under: Storage Matrix products: default BLAS/LAPACK: /pfs/tsfs1/apps/el7-x86_64/u/intel/18.0.1/intel-mkl/2018.2.199-pti6y2y/compilers_and_libraries_2018.2.199/linux/mkl/lib/intel64_lin/libmkl_rt.so ... |
The Intel built version is dependent on the following modules:
swset/2018.05
intel/18.0.1
intel-mkl/2018.2.199
readline/7.0
bzip2/1.0.6
xz/5.2.4
curl/7.60.0
jdk/8u172-b11
The
module load r/3.6.1-intel
line will automatically load these modules for you.The
readline, bzip2, xz
andcurl
libraries are all versions that have also been built using the intel compiler.
Installing Packages to Use with Intel Version
Info |
---|
|
On Teton, R packages are typically installed into:
Code Block |
---|
~/R/ x86_64-pc-linux-gnu-library/ 3.5/ 3.6/ |
One way to install the Intel packages is the following:
Create a folder
~/R/intel/3.6/
Code Block |
---|
~/R/ x86_64-pc-linux-gnu-library/ 3.5/ 3.6/ intel/ 3.6/ |
Use
module load r/3.6.1-intel
to load the Intel version.After starting R, use
.libPaths(c("~/R/intel/3.6/"))
to set your environment to use this folder.If you run
.libPaths()
you should see something of the form:
Code Block |
---|
> .libPaths() [1] "/pfs/tsfs1/home/salexan5/R/intel/3.6" [2] "/pfs/tsfs1/apps/el7-x86_64/u/opt/R/3.6.1/intel/R-3.6.1/library" |
Install packages as normal e.g.
install.packages("<the package's name>")
When running your R scripts you need to set
.libPaths(c("~/R/intel/3.6/"))
before loading any libraries to inform R where the appropriate packages can be found.Note: Currently R Package: RStan can not be installed using the intel version.
Installing Packages: Potential Problems
Trying to install install.packages("labdsv")
resulted in the following error:
Code Block |
---|
/apps/u/gcc/4.8.5/intel/18.0.1-7cbw2rp/include/complex(77): error #308: member "std::complex<float>::_M_value" (declared at line 1187 of "/usr/include/c++/4.8.5/complex") is inaccessible _M_value = __z._M_value; ... compilation aborted for sptree.cpp (code 2) make: *** [sptree.o] Error 2 ERROR: compilation failed for package ‘Rtsne’ * removing ‘/pfs/tsfs1/home/salexan5/R/intel/3.6/Rtsne’ ERROR: dependency ‘Rtsne’ is not available for package ‘labdsv’ * removing ‘/pfs/tsfs1/home/salexan5/R/intel/3.6/labdsv’ |
This appears to be a reasonably common problem:
and is essentially a result of conflicts between compilers when using complex data types with the workaround of disabling the diagnostic error.
To resolve the issue, create and/or update the ~/.R/Makevars
file by adding the following lines:
Code Block |
---|
CFLAGS += -wd308 CXXFLAGS += -wd308 CPPFLAGS += -wd308 PKG_CFLAGS += -wd308 PKG_CXXFLAGS += -wd308 PKG_CPPFLAGS += -wd308 |