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(..., envir = parent.frame())



The environment in which global environment should be located.


Additional arguments passed to BatchtoolsUniprocessFuture().


An object of class BatchtoolsUniprocessFuture.


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 plan(sequential, split = TRUE) futures of the future package.


## Use local batchtools futures

## A global variable
a <- 1

## Create explicit future
f <- future({
  b <- 3
  c <- 2
  a * b * c
v <- value(f)
#> [1] 6

## Create implicit future
v %<-% {
  b <- 3
  c <- 2
  a * b * c
#> [1] 6