NERSCPowering Scientific Discovery Since 1974

R

Description and Overview

R is a language and environment for statistical computing and graphics. It provides a wide variety of statistical tools, such as linear and nonlinear modelling, classical statistical tests, time-series analysis, classification, clustering, graphics, and it is highly extensible.

R provides an Open Source route to express statistical methodologies, it is a GNU project with similarities to the S language and environment. One of R's strengths is the ease with which well-designed publication-quality plots can be produced, including mathematical symbols and formulae where needed. R is an integrated suite of software facilities for data manipulation, calculation and graphical display. 

How to Use R

R is available at NERSC on Carver, Hopper, and Edison.  There are theoretically no limitations to the number of R sessions running at NERSC. Type the following command to launch R:

%module load R 
%R

 To run R interactively,

% qsub -I -V -q interactive -l walltime=30:00
% module load R
% R

To run R non-interactively through a batch job, you can create the following job script, e.g. myscript.sh, that includes aprun, e.g.,:

#!/bin/bash -l
#PBS -N R_test
#PBS -l mppwidth=24,walltime=2:00:00
#PBS -q regular
#PBS -V
cd $PBS_O_WORKDIR
module load R
aprun -n 1 R CMD BATCH code.R

where, for example, code.R could be:

j=1;
imagfilename = paste('myimag', j ,'.pdf',sep='');
pdf(file=imagfilename, width = 800, height =800)
x=1:10;
plot(x, main='R is fun')
dev.off()

In order to run your jobscript, 

qsub myscript.sh

How to Run R in Parallel

The following program illustrates how R can be used for 'coarse-grained parallelization', particularly useful when chunks of the computation are unrelated and do not need to communicate in any way. The example below uses the package parallel to create workers as lightweight processes via forking, and are very useful to optimize codes that use lapply, sapply, apply and related functions:

library("parallel")
f = function(x) { sum = 0 for (i in seq(1,x)) sum = sum + i return(sum) } n=1000 nCores <- detectCores() result = mclapply(X=1:n, FUN = f, mc.cores=nCores)

Documentation

Extensive on-line documentation is available. You may subscribe to the one or more of R Mailing lists. Also, find a quick R tutorial presented at one of our Nersc User Group Meetings.

Availability

PackagePlatformCategoryVersionModuleInstall DateDate Made Default
R carver applications/ visualization 2.10.1 R/2.10.1 2012-02-29
R carver applications/ visualization 2.12.0 R/2.12.0 2010-11-09 2010-11-09
R carver applications/ visualization 2.12.1 R/2.12.1 2012-02-29
R carver applications/ visualization 2.13.1 R/2.13.1 2012-02-29
R carver applications/ visualization 2.14.1 R/2.14.1 2012-02-29
R carver applications/ visualization 2.15.2 R/2.15.2 2012-11-03
R carver applications/ visualization 3.0.1 R/3.0.1 2013-08-15 2014-10-01
R carver_sl6 applications/ visualization 3.1.1 R/3.1.1 2014-10-03 2014-11-12
R carver_sl6 applications/ visualization 3.1.2 R/3.1.2 2014-11-12 2014-11-12
R davinci applications/ math 2.11.1 R 2010-08-10 2010-08-10
R edison applications/ visualization 3.1.0 R/3.1.0 2014-05-30
R edison applications/ visualization 3.1.1 R/3.1.1 2014-07-29 2015-06-30
R edison applications/ visualization 3.2.0 R/3.2.0 2015-06-29
R edison applications/ visualization devel R/devel 2014-09-04
R genepool applications/ programming 2.12.0 R/2.12.0 2012-04-02
R genepool applications/ programming 2.14.1 R/2.14.1 2012-04-02 2012-04-02
R genepool applications/ programming 2.15.0 R/2.15.0 2012-05-14 2012-05-14
R genepool applications/ programming 2.15.1 R/2.15.1 2012-07-07
R genepool applications/ programming 2.15.2 R/2.15.2 2012-11-09 2012-12-18
R genepool applications/ programming 2.15.2_1 R/2.15.2_1 2013-01-28 2013-01-28
R genepool applications/ programming 2.2.26 ncbi/2.2.26 2012-05-14 2012-05-14
R genepool applications/ programming 3.0.1 R/3.0.1 2013-06-08 2013-06-18
R genepool applications/ programming 3.1.1 R/3.1.1 2014-07-25
R genepool applications/ programming 3.1.2 R/3.1.2 2015-02-20
R genepool applications/ programming 3.2.1 R/3.2.1 2015-06-30
R genepool_sl6 applications/ programming 3.1.2 R/3.1.2 2015-03-06 2015-03-06
R genepool_sl6 applications/ programming 3.1.3 R/3.1.3 2015-03-25
R phoebe applications/ programming 2.15.1 R/2.15.1 2013-06-26
R phoebe applications/ programming 2.15.2 R/2.15.2 2013-06-26
R phoebe applications/ programming 2.15.2_1 R/2.15.2_1 2013-06-26
R phoebe applications/ programming 3.0.1 R/3.0.1 2013-06-26 2013-06-26