====== Using R ====== **R** has been installed in ''/apps/chpc/bio/R/?'' and is compiled using openmpi and the GNU compilers. R modules have been created so simply adding: module add chpc/R/3.2.3-gcc5.1.0 to your scripts will set up the appropriate paths to R, the compilers (if you want to add your own R packages) and the mpi libraries. Note that there may be several versions of R installed and can be seen by running the: module avail 2>&1 | grep "R" command. ===== Parallel R ===== The ''Rmpi'', ''doMPI'' and other packages are already installed to allow R to use MPI to distribute its work across multiple nodes of the cluster. **Please submit a request to helpdesk should you need any other packages installed.** Once you've created your R script file, called ''myScRipt.r'', you will need to create a job script file to submit to the PBSPro scheduler. Example job script file: #!/bin/bash #PBS -l select=2:ncpus=24:mpiprocs=24 #PBS -P SHORTNAME #PBS -q normal #PBS -l walltime=4:00:00 #PBS -o /mnt/lustre/users/USERNAME/my_R_data/stdout.txt #PBS -e /mnt/lustre/users/USERNAME/my_R_data/stderr.txt #PBS -N RJob #PBS -M myemailaddress@someplace.com #PBS -m abe # Add R module (includes appropriate openMPI and gcc modules) module add chpc/R/3.2.3-gcc5.1.0 # explicitly calculate number of processes. nproc=`cat $PBS_NODEFILE | wc -l` # make sure we're in the correct working directory. cd /mnt/lustre/users/USERNAME/my_R_data mpirun -np $nproc -machinefile $PBS_NODEFILE R --slave -f myScRipt.r **Notes:** * Replace ''USERNAME'' with **your** user name. * Replace ''SHORTNAME'' with **your research programme's** short name. * Replace ''myemailaddress@someplace.com'' with **your** email address. * And replace ''my_R_data'' with your program's //working directory// (which **must** be under ''/mnt/lustre/users/USERNAME/''). * And change ''myScRipt.r'' to be your //script file name//. ===Running the script=== Submit to the scheduler qsub my_R_job.qsub Check the list of current jobs in the queue qstat -w ==== R/bioconductor ==== Here is a more complete example === pbdR example === == Job scripts == #PBS -l select=2:ncpus=24:mpiprocs=24:place=excl #PBS -l walltime=00:01:00 #PBS -q normal #PBS -P SHORTNAME #PBS -M YOUREMAILADDRESS #PBS -m be #PBS -e /mnt/luster/users/USERNAME/pbdR_test/std_err.txt #PBS -o /mnt/lustre/users/USERNAME/pbdR_test/std_out.txt #PBS -N PBDR_TEST #PBS -mb module add chpc/R/3.2.3-gcc5.1.0 NP=`cat ${PBS_NODEFILE} | wc -l` cd /mnt/lustre/users/USERNAME/pbdR_test/ mpirun -np ${NP} -machinefile ${PBS_NODEFILE} Rscript test_script.R Note: __USERNAME__ should contain your actual user name! library(pbdMPI, quiet=TRUE) init() my.rank <- comm.rank() comm.print(my.rank, all.rank=TRUE) finalize() == Submit your job == Finally submit your job using:user@login01:~ $ qsub pbdtest.qsub