Mirai-based cluster futures
Usage
mirai_cluster(..., envir = parent.frame())
Arguments
- envir
The environment from where global objects should be identified.
- ...
Additional arguments passed to
Future()
.
Details
WARNING: When using this future plan, mirai workers are not shutdown when switching away from this future plan. This is because it the backend requires them to be launched manually before, and it therefore needs to be manually shutdown as well.
Examples
mirai::daemons(parallelly::availableCores())
#> [1] 8
plan(mirai_cluster)
# A function that returns a future, note that N uses lexical scoping...
f <- function() future({4 * sum((runif(N) ^ 2 + runif(N) ^ 2) < 1) / N}, seed = TRUE)
# Run a simple sampling approximation of pi in parallel using M * N points:
N <- 1e6 # samples per worker
M <- 10 # iterations
pi_est <- Reduce(sum, Map(value, replicate(M, f()))) / M
print(pi_est)
#> [1] 3.14174
plan(sequential)
invisible(mirai::daemons(0)) ## Shut down mirai workers