在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中的分布式集群)
谢谢!
答案 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