同时使用doparallel和png时出现问题

同时使用doparallel和png时出现问题,r,png,doparallel,parallel-foreach,R,Png,Doparallel,Parallel Foreach,将%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 =

将%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)

myCluster您可以尝试删除
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)

myCluster您可以尝试删除
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)

myCluster它确实有效,但我不明白为什么。我认为这个选项用于从主代码继承变量,如果您在Linux中进行分叉处理,也是这样。这里发生了什么问题?基本上取决于操作系统。默认情况下,macOS通过
makeCluster
直接支持fork,而Windows则不支持。看看这个:它确实有效,但我不明白为什么。我认为这个选项用于从主代码继承变量,如果您在Linux中进行分叉处理,也是这样。这里发生了什么问题?基本上取决于操作系统。默认情况下,macOS通过
makeCluster
直接支持fork,而Windows则不支持。看看这个: