R
R is available on all HPC resources. To see what R
versions are available via modules, do the following.
$ ml avail # check for "gnu" packages available or $ module spider R # check for how to check the module $ module swap intel gnu7 or gnu8 # based on requirement $ module avail R # lists all the avilable versions of "R" $ module load R # There are 3 versions of "R". This command loads latest version. $ module load R/3.4.4 # loads "R" version 3.4.4 $ module list # shows loaded module in your profile
| If you require other versions of the software, please reach out to circ-assist@utdallas.edu. |
You can now run the R CLI by typing the letter R or running R script.
Don’t run your jobs on the login node. Instead, please
submit your job to Slurm.
You need to create a Slurm job script to submit a job. Write your own script to
submit a job (sbatch <script name>) as shown.
#!/bin/bash #SBATCH --job-name=My-R-Job #SBATCH --mail-user=netid@utdallas.edu # netid example: xyz180012 #SBATCH --mail-type=ALL #SBATCH --nodes=1 #SBATCH --ntasks=4 #SBATCH --output=r.result #SBATCH --partition=normal module swap intel gnu7/7.3.0 # for ganymede module load R Rscript <script-name>
$ squeue -u $USER # shows status of your job. Shows the nodes your job was submitted
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
219651 normal My-R-Job xyz180012 R 0:04 1 compute-7-3-12
Install packages
Installing R packages in Conda Environment
To install R essential packages in Conda environment do the following:
$ conda create -n my_R_env -c r r-essentials -n or --name # name my_env # name of the virtual environment, -c or --channel # channel r # specified channel to install the `r-essentials` package from.
Conda will take some time to install the packages to the home directory.
You get the prompt Proceed ([y]/n)?, hit y and then the Enter key
to continue with the installation. The output after installation is:
r-dichromat-2.0_0 | 163 KB | #################################################################### | 100% Preparing transaction: done Verifying transaction: done Executing transaction: done # # To activate this environment, use # # $ conda activate my_R_env # # To deactivate an active environment, use # # $ conda deactivate
Use conda activate my_R_env to activate the newly created environment.
Use the conda list command to show the list of packages installed.
Use the grep command to quickly search and verify if a given package is
installed.
$conda activate my_R_env # activate the newly created environment (my_R_env)$ conda list # displays the list of packages installed ... webencodings 0.5.1 pypi_0 pypi wheel 0.37.1 pyhd3eb1b0_0 xz 5.2.5 h7b6447c_0 zeromq 4.3.4 h2531618_0 zlib 1.2.12 h7f8727e_1 zstd 1.4.9 haebb681_0 (my_R_env)$ conda list | grep -i wheel # displays the package wheel wheel 0.37.1 pyhd3eb1b0_0
You can search for packages using multiple channels. For instance, to search
for r-devtools in the r or conda-forge channels, use the following
syntax.
(my_R_env)$ conda search -c r -c conda-forge r-devtools Loading channels: done # Name Version Build Channel r-devtools 1.8.0 r3.2.0_0 r r-devtools 1.8.0 r3.2.0_0 pkgs/r r-devtools 1.8.0 r3.2.0_0a r ... r-devtools 1.12.0 r3.3.2_0 conda-forge r-devtools 1.12.0 r3.3.2_0 pkgs/r r-devtools 1.13.2 r3.3.2_0 conda-forge r-devtools 1.13.2 r3.4.1_0 r ... r-devtools 2.4.2 r40hc72bb7e_0 conda-forge r-devtools 2.4.2 r41hc72bb7e_0 conda-forge
Installing local packages in R
R packages can be installed from various resources using the following syntax
install.packages() # Install a package from CRAN biocLite() # Install a package from Bioconductor devtools::install_github() # Install a package from GitHub installed.packages() # View the list of installed packages
Example: to install the R package tester do install.packages("tester").
Useful R commands
.libPaths() # Folder containing installed packages library() # Load and use an R package search() # View loaded R packages detach(pkg_name, unload = TRUE) # Unload an R package remove.packages() # Remove installed packages update.packages() # Update installed packages
Parallelize R code with package makeCluster
The function to create a parallel socket cluster is makeCluster which takes
in as an argument the number of cores.
makeCluster(numberOfCores) # Makes a cluster with specified number of cores.
makeCluster(spec, names, nnodes, type) # Creates a set of copies of R running
in parallel and communicating over sockets.
spec # type of cluster
names # number of copies to be run on localhost
nnodes # number of nodes to be forked
type # One of the supported type Ex: "MPI" or "PSOCK" or "FORK"
Example:
library(parallel)
numCores <- detectCores() - 1 # Calculate the number of cores, A good number of
clusters is the numbers of available cores – 1.
numCores
## [1] 39
cl <- makeCluster(numCores) # Initiate cluster, "cl". "cl", an object of class "cluster"
make a cluster with 39 nodes
cl <- makeCluster(4) # Make a cluster with 4 nodes
str(cl) # Investigate the structure of "cl"
stopCluster(cl) # Close the cluster, "cl"