| sbatch | R Documentation | 
Submit R jobs in parallel (array).
sbatch(
  path = getwd(),
  rFile = "testSbatch.R",
  jobName = "job",
  threaded = 1,
  memoryG = 10,
  rTimeHour = 2,
  logFile = "logfilename.log",
  email = NULL,
  when2Email = "END,FAIL,STAGE_OUT,TIME_LIMIT",
  computeNode = NULL,
  moreQsubParams = "",
  array = 1:10,
  dependency = FALSE,
  preCMD = "module load R/3.5.1 && Rscript ",
  param1 = NULL,
  ...
)
| path | file path. | 
| rFile | the R script to run. | 
| jobName | the job name(s). | 
| threaded | integer or integer vector to specify the number of threads of each job. | 
| memoryG | numeric or numeric vector to specify the memory (in Gb) of each job. | 
| rTimeHour | numeric or numeric vector. Maximum running time (in hour) of each job. | 
| logFile | the log file(s) for errors and warnings. | 
| email | email to receive report from HPC. The default is NULL. | 
| when2Email | when will the server send a email. Valid values are NONE, BEGIN, END, FAIL, REQUEUE, ALL (equivalent to BEGIN, END, FAIL, REQUEUE, and STAGE_OUT), STAGE_OUT (burst buffer stage out and teardown completed), TIME_LIMIT, TIME_LIMIT_90 (reached 90 percent of time limit), TIME_LIMIT_80 (reached 80 percent of time limit), TIME_LIMIT_50 (reached 50 percent of time limit) and ARRAY_TASKS (send emails for each array task). Multiple values may be specified in a comma separated list. The default is "END,FAIL,STAGE_OUT,TIME_LIMIT". For compatibility, when2Email="aes" is allowed, meaning when2Email="END,FAIL,STAGE_OUT,TIME_LIMIT". | 
| computeNode | which computing CPU node will be used?
Support regular expression. The default is NULL, meaning the node is not 
specified. For compatibility, computeNode =  | 
| moreQsubParams | more sbatch parameters. | 
| array | either integers or character indicating array IDs, for example 1:10, "1-10", "1-10,100,1000". | 
| dependency | logical, If true, this job can only be run after the previous job named by jobName is finished. | 
| preCMD | the command to run R script, the default is 'echo "module load R/3.3.0 && Rscript '. | 
| param1 | the first parameter passed to R script. | 
| ... | other parameter passed to R script. | 
SLURM_ARRAY_TASK_ID is the variable in the systeim environment that can be used in R scripts.
A list of output of running rFile.
## Not run: 
# This function can only run on HPC with slurm.
#######################################################
# For the compatiblity of rQsub2 function
## Section 1, the format of R script file (for example myfile.R) to submit:
args = commandArgs(TRUE)
if (FALSE){
 # Input the code to use sbatch/rQsub, see section 2
 # And run the code manually in this if`{}` statement , for example:
 sbatch(path = getwd(), rFile = "myfile.R", param1 = 1:5)
}
arg1 = args[1]
# Then input R code to use the arg1 variable. for example:
cat("test code result:", arg1, "\n")
## Section 2, the code to use rQsub
# One parameter in R script
path = "/my/file/path"
sbatch(path = path,
      rFile = paste0(path, "/testQsub.R"),
      jobName = "job", threaded = 1,
      memoryG = 10, rTimeHour = 2,
      logFile = paste0(path, "/logfilename.log"),
      preCMD = 'module load R/3.3.0 && Rscript ',
      param1 = 1:10)
# Multiple parameters in R script and using 2 threads
sbatch(path = path,
      rFile = paste0(path, "/testQsub.R"),
      jobName = "job", threaded = 2,
      param1 = 1:10, param2 = 2:11, param3 = 3:12)
# Specify job names, threads, memories and running time.
sbatch(path = path,
      rFile = paste0(path, "/testQsub.R"),
      jobName = paste0("job_", formatN(1:10, 2)),
      logFile = paste0(path, "/logfilename_", formatN(1:10, 2), ".log"),
      threaded = rep(c(1, 2), each = 5),
      memoryG = rep(c(10, 20), each = 5),
      rTimeHour = rep(c(24, 48), each = 5),
      param1 = 1:10)
##############################
#' ## Section 1, the format of R script file to submit:
if (FALSE){
# Run the code manually in this if`{}` statement , for example:
pathFile = rstudioapi::getActiveDocumentContext()
path = dirname(pathFile$path)
Rfile = pathFile$path
sbatch(path = path, rFile = Rfile, array = 1:5)
# See section 2 for mor examples.
}
arg1 = Sys.getenv("SLURM_TASK_ID")
arg1 = as.numeric(arg1)
# Then input R code to use the arg1 variable. for example:
cat("test code result:", arg1, "\n")
Sys.sleep(200)
## Section 2, the code to use rQsub
sbatch(path = path, rFile = Rfile,
      jobName = "job", threaded = 2,
      memoryG = 10, rTimeHour = 1.3,
      logFile = paste0(path, "/logfilename.log"),
      array = 1:3,
      preCMD = 'module load R/3.5.1 && Rscript ',
      param1 = NULL)
# Run slurm job1 when previous job (also named "job1") is finished
sbatch(path = path, rFile = Rfile,
      jobName = "job1", threaded = 2,
      memoryG = 10, rTimeHour = 2,
      logFile = paste0(path, "/logfilename.log"),
      array = 1,
      dependency = TRUE,
      preCMD = 'module load R/3.5.1 && Rscript ',
      param1 = NULL)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.