To run R programs on a batch queue system you must specify the BATCH keyword to R.
...
In order to run an R program inside a job script, you must be able to run the program's script from the command line without using the R prompt interactively. R provides the Rscript
command for this purpose, which is available in all R modules on Argon. Therefore, if you would normally process a single data set on your Windows or Unix workstation like this (and save the console output into a file):
Code Block | ||
---|---|---|
| ||
cd path/to/dataSet123
Rscript my/scripts/program.R inputDataSet123.txt > output123.txt |
You could do the same thing on Argon by composing a job script which first loads the R module you want, but is otherwise the same:
Code Block | ||
---|---|---|
| ||
module load R/3.5.1
cd path/to/dataSet123
Rscript my/scripts/program.R inputDataSet123.txt > output123.txt |
You can easily modify this to make better use of SGE features and take advantage of Argon's scratch filesystems according to HTC Best Practices for better performance. For example, use SGE to temporarily save all output from the entire job script onto /localscratch
, then move the resulting file to your home directory at the end:
Code Block | ||
---|---|---|
| ||
#$ -j y
#$ -o /localscratch
module load R/3.5.1
cd path/to/dataSet123
Rscript my/scripts/program.R inputDataSet123.txt
mv $SGE_STDOUT_PATH . |
Note |
---|
Some tutorials suggest running R scripts with an older convention as "
Therefore we advise against using " |