【问题标题】:using glmnet with future将 glmnet 与未来一起使用
【发布时间】:2019-03-17 20:04:42
【问题描述】:

在 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 那样的分布式集群)

谢谢!

【问题讨论】:

  • 你确定你需要furrr吗?而不仅仅是你提供的链接中的doFuture?还是问题的标题不正确?
  • 是的,谢谢,我的意思是未来
  • @phiver 那你有什么想法吗?

标签: r multiprocessing glmnet


【解决方案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 

【讨论】:

    猜你喜欢
    • 2017-02-02
    • 2017-11-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2017-05-31
    • 2014-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多