【问题标题】:How to use doMC under Windows or alternative parallel processing implementation for glmnet?如何在 Windows 下使用 doMC 或 glmnet 的替代并行处理实现?
【发布时间】:2016-11-04 15:15:35
【问题描述】:

我在 Rstudio 中使用带有 R 3.3.1 的 Win7 操作系统。意图是使用glmnet 进行并行处理。来自?glmnet的帮助:

parallel:如果TRUE,使用并行foreach来适应每个折叠。必须 事先注册并行,例如doMC或其他。见 下面的例子。

来自引用的示例:

# Parallel
require(doMC)
registerDoMC(cores=4)

install.packages('doMC')退货包不可用。手动检查 CRAN 提供可下载的 UNIX 代码,但 Windows 二进制文件不可用。

我还能在我的 Win7 操作系统下使用 doMC 之类的代码吗?或者有什么有用的替代方法?

【问题讨论】:

    标签: r foreach parallel-processing domc


    【解决方案1】:

    正如doMC 的小插图中所写的那样

    doMC 包充当 foreach 和 并行包的多核功能,最初由 Simon Urbanek 并入并行 R2.14.0。这 多核功能目前仅适用于操作系统 支持 fork 系统调用(这意味着 Windows 不是 支持)

    您可以尝试改用snow 包和SOCK 集群。 (感谢@HongOoi 提示加载doSNOW 并不是真正需要的。)

    library(doParallel)
    
    #the following line will create a local 4-node snow cluster
    workers = makeCluster(4, type="SOCK")
    registerDoParallel(workers)
    
    foreach(i=1:4) %dopar% Sys.getpid()
    

    【讨论】:

    • Snow 集群并不需要 doSNOW;并行包(R 附带)和 doParallel 也将处理雪簇。
    • @HongOoi doSNOW 由于并行包的限制,doSNOW 比 doParallel 有一定的优势。例如,doSNOW 支持进度条和即时调用 combine 函数。
    • 一条评论,我需要加载library(snow)。否则将无法正常工作。
    • 对我来说,我必须确保安装了 snow,但无需使用 load(snow) 显式加载它
    猜你喜欢
    • 2018-05-15
    • 1970-01-01
    • 2021-07-28
    • 1970-01-01
    • 2015-10-10
    • 2017-08-10
    • 2019-05-01
    • 2011-11-20
    • 2022-11-02
    相关资源
    最近更新 更多