cluster(expr, envir = parent.frame(), substitute = TRUE, globals = TRUE, persistent = FALSE, workers = NULL, user = NULL, revtunnel = TRUE, homogeneous = TRUE, gc = FALSE, earlySignal = FALSE, label = NULL, ...)
expr
is
substitute()
:ed, otherwise not.future()
and futureCall()
.makeCluster()
.The preferred way to create an cluster future is not to call
this function directly, but to register it via
plan(cluster)
such that it becomes the default
mechanism for all futures. After this future()
and %<-%
will create cluster futures.
## Cluster futures gives an error on R CMD check on
## Windows (but not Linux or OS X) for unknown reasons.
## The same code works in package tests.
## Use cluster futures
cl <- parallel::makeCluster(2L)
plan(cluster, workers=cl)
## A global variable
a <- 0
## Create multicore future (explicitly)
f <- future({
b <- 3
c <- 2
a * b * c
})
## A cluster future is evaluated in a separate process.
## 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)
Run the code above in your browser using DataLab