【问题标题】:Problem using doparallel and png together一起使用doparallel和png的问题
【发布时间】:2019-07-12 09:45:30
【问题描述】:

将 %dopar% 与 png 结合使用。由于某种原因,R 在看到此代码时一直卡住。希望得到有关卡住的原因以及如何解决它的建议。

myCluster <- makeCluster(2, type = "FORK")
registerDoParallel(myCluster)

foreach(f = 1:2) %dopar% {
  png(filename = paste("test", f, ".png", sep = ""), width = 300, height = 300)
  plot(sin, -pi, f * pi)
  dev.off()
}

stopCluster(myCluster)

如果重要的话,我正在使用带有 macOS Mojave 的 Mac

【问题讨论】:

    标签: r png doparallel parallel-foreach


    【解决方案1】:

    您可以尝试删除makeCluster 函数中的type = "FORK" 选项。此选项主要用于 Windows 和类 Unix 平台。

    myCluster <- makeCluster(2)
    registerDoParallel(myCluster)
    
    foreach(f = 1:2) %dopar% {
      png(filename = paste("test", f, ".png", sep = ""), width = 300, height = 300)
      plot(sin, -pi, f * pi)
      dev.off()
    }
    
    stopCluster(myCluster)
    

    更多信息请联系here

    【讨论】:

    • 它确实有效,但我不明白为什么。如果你在 Linux 中 fork 进程,我认为这个选项用于从主代码继承变量。这里发生了什么问题?
    • 它基本上取决于操作系统。默认情况下,macOS 支持直接使用 makeCluster 进行 fork,而 Windows 不支持。看看这个:cran.r-project.org/web/packages/doParallel/vignettes/…
    猜你喜欢
    • 2018-12-01
    • 2021-11-20
    • 2015-08-31
    • 2013-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-08
    • 2019-09-23
    相关资源
    最近更新 更多