首页 文章

如何在Windows下使用doMC或glmnet的替代并行处理实现?

提问于
浏览
5

我在Rstudio中使用R 3.3.1的Win7 OS . 意图是使用 glmnet 进行并行处理 . 来自 ?glmnet 帮助:

parallel:如果为TRUE,请使用平行foreach来适合每个折叠 . 必须事先注册并行注册,例如doMC或其他 . 请参阅下面的示例 .

从引用的例子:

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

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

我仍然可以在Win7操作系统下使用 doMC 代码或什么是有用的替代方案?

1 回答

  • 9

    正如 doMC 中的小插图所写

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

    您可以尝试使用 snow 包和 SOCK 群集 . (Thx @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()
    

相关问题