我正在预先计算结果并使用memoise包的memoise
功能缓存它们。不幸的是,如果我尝试通过与 并行运行来加速计算,则不会发生记忆。parallel::mclapply
> f <- memoise::memoise(function (a, b) a)
> memoise::has_cache(f)("foo", "bar")
[1] FALSE
> parallel::mclapply(c("bar", "baz"), f, a = "foo")
[[1]]
[1] "foo"
[[2]]
[1] "foo"
> memoise::has_cache(f)("foo", "bar")
[1] FALSE
> sapply(c("bar", "baz"), f, a = "foo")
bar baz
"foo" "foo"
> memoise::has_cache(f)("foo", "bar")
[1] TRUE
我想在每个 fork 中复制 memoised 函数然后丢弃......有没有使用其他函数或包的简单替代方法?