| batchtools_local {future.batchtools} | R Documentation |
A batchtools local future is an synchronous uniprocess future that will be evaluated in a background R session. A batchtools interactive future is an synchronous uniprocess future that will be evaluated in the current R session (and variables will be assigned to the calling environment rather than to a local one). Both types of futures will block until the futures are resolved.
batchtools_local(expr, envir = parent.frame(), substitute = TRUE, globals = TRUE, label = NULL, workers = 1L, ...)
expr |
The R expression to be evaluated |
envir |
The environment in which global environment should be located. |
substitute |
Controls whether |
globals |
(optional) a logical, a character vector, a named list, or
a Globals object. If TRUE, globals are identified by code
inspection based on |
label |
(optional) Label of the future (where applicable, becomes the job name for most job schedulers). |
workers |
(optional) The maximum number of workers the batchtools backend may use at any time. Interactive and "local" backends can only process one future at the time, whereas HPC backends where futures are resolved via separate jobs on a scheduler, the default is to assume an infinite number of workers. |
... |
Additional arguments passed to
|
batchtools local futures rely on the batchtools backend set up by
batchtools::makeClusterFunctionsInteractive(external = TRUE)
and batchtools interactive futures on the one set up by
batchtools::makeClusterFunctionsInteractive().
These are supported by all operating systems.
An alternative to batchtools local futures is to use
cluster futures of the future
package with a single local background session, i.e.
plan(cluster, workers = "localhost").
An alternative to batchtools interactive futures is to use transparent futures of the future package.
An object of class BatchtoolsFuture.
## Use local batchtools futures
plan(batchtools_local)
## A global variable
a <- 1
## Create explicit future
f <- future({
b <- 3
c <- 2
a * b * c
})
v <- value(f)
print(v)
## Create implicit future
v %<-% {
b <- 3
c <- 2
a * b * c
}
print(v)