run | R Documentation |
Run a task on a list of inputs, making easy to parallelize it or run it in
a sequential session. If the glonal option easypar.parallel
is set, the parameter
parallel
is overwritten. This allows to easily switch between debug and non-debug
execution modes for this task.
run( FUN, PARAMS, packages = NULL, export = NULL, cores.ratio = 0.8, parallel = TRUE, silent = TRUE, outfile = "", cache = NULL, progress_bar = TRUE, filter_errors = TRUE )
FUN |
R function to run |
PARAMS |
List of parameters, each entry needs to match the arguments of |
packages |
Packages to load in each parallel thread |
export |
Variables to export to each parallel thread |
cores.ratio |
Ratio of the available cores that are used for a parallel run, default 80%. |
parallel |
Boolean value, TRUE for a parallel execution, and FALSE for a standard for loop. |
silent |
Silent output from easypar. |
outfile |
Output file for the parallel thread, default |
cache |
Cache is used during computation to dump results to a template RDS file. |
progress_bar |
Boolean value, default TRUE. Print a progress_bar during the execution. |
filter_errors |
If 'TRUE', errors intercepted are filtered before returning results. |
# A very simple function dummy_fun = function(x) {x} # Parameters dummy_params = lapply(1:5, list) # Default run: parallel, silent, output to screen run(dummy_fun, dummy_params) # Run serially with progress_bar run(dummy_fun, dummy_params, parallel = FALSE) # Run serially without progress_bar run(dummy_fun, dummy_params, parallel = FALSE, progress_bar = FALSE) # Run parallel, not silent, caching the results run(dummy_fun, dummy_params, silent = FALSE, cache = "MyCache.rds") file.remove("MyCache.rds") # Overwriting default setting with global options options(easypar.parallel = FALSE) run(dummy_fun, dummy_params) # Will run sequentially options(easypar.progress_bar = FALSE) # Will hide the progress bar run(dummy_fun, dummy_params) # Errors can be intercepted. Consider a function # that can generate some error. The run will not plot and # the computation will run anyway. options(easypar.parallel = TRUE) results = run( FUN = function(x) { if(runif(1) > .5) stop("Some error") x }, PARAMS = dummy_params, silent = TRUE, filter_errors = FALSE ) # Getters that can return the number of errors # and filter them out numErrors(results) filterErrors(results) #' Can do this automatically with filter_errors = TRUE results = run( FUN = function(x) { if(runif(1) > .5) stop("Some error") x }, PARAMS = dummy_params, silent = TRUE, filter_errors = TRUE )
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.