在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
如何使用期货来使用我的所有 4 个内核(在我的本地机器上 - 没有分布式集群,就像在 R 中并行执行 glmnet 一样(
谢谢!
这似乎有效。至少用户时间要低得多,但由于并行开销,系统时间增加了。
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