The future package (I'm the author) provides this:
library("future")
plan(multiprocess)
myfun <- function() {
future(fun2())
return(1+1)
}
Unless fun2()
is function used purely for its side effects, you typically want to retrieve the value of that future expression, which you do as:
f <- future(fun2())
y <- fun3()
v <- value(f)
z <- v + y
An alternative is to use the %<-%
operator as in:
v %<-% fun2()
y <- fun3()
z <- v + y
FYI, if you use
plan(cluster, workers = c("n1", "n3", "remote.server.org"))
then the future expression is resolved on one of those machines. Using
plan(future.BatchJobs::batchjobs_slurm)
will cause it to be resolved via a Slurm job scheduler queue.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…