Create a cluster future whose value will be resolved asynchronously in a parallel process
A cluster future is a future that uses cluster evaluation, which means that its value is computed and resolved in parallel in another process.
cluster(..., workers = availableWorkers(), envir = parent.frame())
... |
Additional named elements passed to |
workers |
A |
envir |
The environment from where global objects should be identified. |
This function will block if all available R cluster nodes are occupied and will be unblocked as soon as one of the already running cluster futures is resolved.
## Use cluster futures
cl <- parallel::makeCluster(2, timeout = 60)
plan(cluster, workers = cl)
## A global variable
a <- 0
## Create future (explicitly)
f <- future({
b <- 3
c <- 2
a * b * c
})
## A cluster future is evaluated in a separate process.
## Regardless, changing the value of a global variable will
## not affect the result of the future.
a <- 7
print(a)
v <- value(f)
print(v)
stopifnot(v == 0)
## CLEANUP
parallel::stopCluster(cl)Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.