将 glmnet 与未来一起使用

using glmnet with future

在 windows 上,我在使用 library(doparallel) 时遇到困难,它似乎在几次 glmnet 调用后崩溃了

所以我正在尝试将 future 程序包 (https://github.com/HenrikBengtsson/future) 与 glmnet 一起使用,但我不确定在这里进行的最佳方式是什么。

这是一个简单的例子(非并行化)

X = matrix(rnorm(1e4 * 200), 1e4, 200)
Y = rnorm(1e4)
system.time(cv.glmnet(X, Y))
user  system elapsed 
3.42    0.22    3.67 

我如何使用 futures 来使用我所有的 4 个内核(在我的本地机器上 - 没有像 executing glmnet in parallel in R 中那样的分布式集群)

谢谢!

这似乎有效。至少用户时间要低很多,但由于并行开销,系统时间增加了。

library("doFuture")
registerDoFuture()
plan(multiprocess, workers = 4L)

system.time(cv.glmnet(X, Y, parallel = TRUE))

user  system elapsed 
0.46    0.17    5.59 

versus

system.time(cv.glmnet(X, Y))
   user  system elapsed 
   2.33    0.05    2.39