Learn R Programming

future.BatchJobs (version 0.17.0)

batchjobs_local: BatchJobs local and interactive futures

Description

A BatchJobs local future is an synchronous uniprocess future that will be evaluated in a background R session. A BatchJobs 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.

Usage

batchjobs_local(
  expr,
  envir = parent.frame(),
  substitute = TRUE,
  globals = TRUE,
  label = "BatchJobs",
  workers = 1L,
  job.delay = FALSE,
  ...
)

Arguments

expr

The R expression to be evaluated

envir

The environment in which global environment should be located.

substitute

Controls whether expr should be substitute():d or not.

globals

(optional) a logical, a character vector, a named list, or a Globals object. If TRUE, globals are identified by code inspection based on expr and tweak searching from environment envir. If FALSE, no globals are used. If a character vector, then globals are identified by lookup based their names globals searching from environment envir. If a named list or a Globals object, the globals are used as is.

label

(optional) Label of the future (where applicable, becomes the job name for most job schedulers).

workers

(optional) Additional specification for the BatchJobs backend.

job.delay

(optional) Passed as is to submitJobs().

Additional arguments passed to BatchJobsFuture().

Value

An object of class BatchJobsFuture.

Details

BatchJobs local futures rely on the BatchJobs backend set up by makeClusterFunctionsLocal() and BatchJobs interactive futures on the one set up by makeClusterFunctionsInteractive(). These are supported by all operating systems.

An alternative to BatchJobs 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 BatchJobs interactive futures is to use transparent futures of the future package.

Examples

Run this code
# NOT RUN {
## Use local BatchJobs futures
plan(batchjobs_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)
# }

Run the code above in your browser using DataLab