User Tools

Site Tools


howto:r

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
howto:r [2015/05/04 11:30]
dane Updated for PBSPro
howto:r [2021/12/09 16:42] (current)
Line 1: Line 1:
 ====== Using R ====== ====== Using R ======
  
-**R** is installed in ''/opt/gridware/applications/R/R-3.1.3/'' and is compiled using openmpi 1.6.5 with the GNU compilers. Simply adding:  +**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:
 <code> <code>
-export MODULEPATH=/opt/gridware/bioinformatics/modules:$MODULEPATH +module add chpc/R/3.2.3-gcc5.1.0
-module add R/3.1.3+
 </code> </code>
  
-to your **''.bashrc''**  file in your home directory 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 are several versions of R installed and can be seen by running the: <code>module avail</code> command.+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: <code>module avail 2>&1 | grep "R"</code> command.
  
-==== Changes to .profile file ==== 
  
-On the CHPC clusters the ''.bashrc'' file is not automatically run for interactive logins, only the ''.profile'' file is.  To rectify this add the following lines to the **end** of your ''.profile'' file:+===== Parallel R =====
  
-<code bash> +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.**
-if [ -f ~/.bashrc ]; then +
-    ~/.bashrc +
-fi +
-</code>+
  
-Then make any changes to the ''PATH'' variable in your ''.bashrc'' file. +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.
- +
-=====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 Moab scheduler.+
  
 Example job script file: Example job script file:
Line 32: Line 19:
 <file bash my_R_job.qsub> <file bash my_R_job.qsub>
 #!/bin/bash #!/bin/bash
-#PBS -l select=2:ncpus=12:jobtype=dell,place=excl +#PBS -l select=2:ncpus=24:mpiprocs=24 
-#PBS -l walltime=1:00:00 +#PBS -P SHORTNAME 
-#PBS -q workq +#PBS -q normal 
-#PBS -V +#PBS -l walltime=4:00:00 
-#PBS -o /export/home/username/scratch5/my_R_data/stdout.txt +#PBS -o /mnt/lustre/users/USERNAME/my_R_data/stdout.txt 
-#PBS -e /export/home/username/scratch5/my_R_data/stderr.txt+#PBS -e /mnt/lustre/users/USERNAME/my_R_data/stderr.txt
 #PBS -N RJob #PBS -N RJob
 #PBS -M myemailaddress@someplace.com #PBS -M myemailaddress@someplace.com
 #PBS -m abe #PBS -m abe
  
-# make sure appropriate R module is available 
-source /etc/profile.d/modules.sh 
-MODULEPATH=/opt/gridware/bioinformatics/modules:${MODULEPATH} 
 # Add R module (includes appropriate openMPI and gcc modules) # Add R module (includes appropriate openMPI and gcc modules)
-module add R/3.1.3+module add chpc/R/3.2.3-gcc5.1.0
  
 # explicitly calculate number of processes. # explicitly calculate number of processes.
Line 52: Line 36:
  
 # make sure we're in the correct working directory. # make sure we're in the correct working directory.
-cd /export/home/username/scratch5/my_R_data+cd /mnt/lustre/users/USERNAME/my_R_data
  
-mpirun -np $nproc -machinefile $PBS_NODEFILE  R --slave -f /export/home/username/scratch5/my_R_data/myScRipt.r+mpirun -np $nproc -machinefile $PBS_NODEFILE  R --slave -f myScRipt.r
 </file> </file>
  
 **Notes:** **Notes:**
-  * Replace ''username'' with **your** user name.+  * Replace ''USERNAME'' with **your** user name. 
 +  * Replace ''SHORTNAME'' with **your research programme's** short name.
   * Replace ''myemailaddress@someplace.com'' with **your** email address.   * Replace ''myemailaddress@someplace.com'' with **your** email address.
-  * And replace ''my_R_data'' with your program's //working directory// (which **must** be on ''scratch'').+  * 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//.   * And change ''myScRipt.r'' to be your //script file name//.
 +
 +===Running the script===
 +
 +Submit to the scheduler
 +<code>
 +qsub my_R_job.qsub
 +</code>
 +
 +Check the list of current jobs in the queue
 +<code>
 +qstat -w
 +</code>
 +
 +==== R/bioconductor ====
 +
 +Here is a more complete example
 +
 +=== pbdR example ===
 +== Job scripts ==
 +<file bash pbdtest.qsub>
 +#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
 +
 +</file>
 +Note: __USERNAME__ should contain your actual user name!
 +
 +<file R test_script.R>
 +library(pbdMPI, quiet=TRUE)
 +init()
 +my.rank <- comm.rank()
 +comm.print(my.rank, all.rank=TRUE)
 +
 +finalize()
 +</file>
 +
 +== Submit your job ==
 +Finally submit your job using:<code bash>user@login01:~ $ qsub pbdtest.qsub</code>
 +
/app/dokuwiki/data/attic/howto/r.1430731814.txt.gz · Last modified: 2021/12/09 16:42 (external edit)