Skip to contents

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().

Value

An object of class MiraiFuture.

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