Description Usage Arguments Details Value Examples
An easy-to-use form of lapply that emulates parallelization using a SLURM cluster.
| 1 2 3 4 | 
| x | vector/list - FUN will be applied to the elements of this | 
| FUN | function - function to be applied to each element of x | 
| ... | further arguments of FUN | 
| tasks | integer - number of individual parallel jobs to execute | 
| workingDir | string - path to folder that will contain all the temporary files needed for submission, execution, and compilation of inidivudal jobs | 
| packages | character vector - package names to be loaded in individual tasks | 
| sources | character vector - paths to R code to be loaded in individual tasks | 
| extraBashLines | character vector - each element will be added as a line to the inidividual task execution bash script before R gets executed. For instance, here you may want to load R if it is not in your system by default | 
| extraScriptLines | character vector - each element will be added as a line to the individual task execution R script before starting lapply | 
| clean | logical - if TRUE all files created in workingDir will be deleted | 
| partition | character - Partition to use. Equivalent to  | 
| time | character - Time requested for job execution, one accepted format is "HH:MM:SS". Equivalent to  | 
| mem | character - Memory requested for job execution, one accepted format is "xG" or "xMB". Equivalent to  | 
| proc | integer - Number of processors requested per task. Equivalent to  | 
| totalProc | integer - Number of tasks requested for job. Equivalent to  | 
| nodes | integer - Number of nodes requested for job. Equivalent to  | 
Mimics the functionality of lapply but implemented in a way that iterations can be submmitted as one or more individual jobs to a SLURM cluster. Each job batch, err, out, and script files are stored in a temporary folder. Once all jobs have been submmitted, the function waits for them to finish. When they are done executing, all results from individual jobs will be compiled into a single list.
list - results of FUN applied to each element in x
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | ## Not run: 
#------------------------
# Parallel execution of 100 function calls using 4 parellel tasks
myFun <- function(x) {
    #Sys.sleep(10)
    return(rep(x, 3))
}
dir.create("~/testSap")
sapOut <- superApply(1:100, FUN = myFun, tasks = 4, workingDir = "~/testSap", time = "60", mem = "1G")
#------------------------
# Parallel execution of 100 function calls using 100  parellel tasks
sapOut <- superApply(1:100, FUN = myFun, tasks = 100, workingDir = "~/testSap", time = "60", mem = "1G")
#------------------------
# Parallel execution where a package is required in function calls
myFun <- function(x) {
    return(ggplot(data.frame(x = 1:100, y = (1:100)*x), aes(x = x, y = y )) + geom_point() + ylim(0, 1e4))
}
dir.create("~/testSap")
sapOut <- superApply(1:100, FUN = myFun, tasks = 4, workingDir = "~/testSap", packages = "ggplot2",  time = "60", mem = "1G")
#------------------------
# Parallel execution where R has to be loaded in the system (e.g. in bash `module load R`)
sapOut <- superApply(1:100, FUN = myFun, tasks = 4, workingDir = "~/testSap", time = "60", mem = "1G", extraBashLines = "module load R")
#------------------------
# Parellel execution where a source is required in funciton calls
# Content of ./customRep.R
   customRep <- function(x) {
           return(paste("customFunction", rep(x, 3)))
   }
# Super appply execution 
myFun <- function(x) {
    return(customRep(x))
}
dir.create("~/testSap")
sapOut <- superApply(1:100, FUN = myFun, tasks = 4, sources = "./customRep.R", workingDir = "~/testSap", time = "60", mem = "1G")
## End(Not run)
 | 
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.