在未来使用glmnet

时间:2018-10-12 14:52:59

标签: r multiprocessing glmnet

在Windows上,我很难使用library(doparallel),它似乎在几次glmnet通话后崩溃了

因此,我正在尝试将future的{​​{1}}软件包(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 

如何使用期货来使用我的所有4个核心(在我的本地计算机上-没有executing glmnet in parallel in R中的分布式集群)

谢谢!

1 个答案:

答案 0 :(得分:1)

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

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