如何确保并行的 Rscript.exe 进程在我的 R 会话中关闭?

How do I ensure parallel's Rscript.exe processes are closed with my R session?

我正在使用 parallel 包一次多次 运行 服务器功能。服务器功能循环,直到会话被用户手动停止。

看起来像:

library(parallel)

cluster <- makeCluster(3)
clusterCall(cluster, f)

在 Windows 上,parallel 通过为集群中的每个工作进程创建一个 Rscript 进程来工作。但是,这些进程在终止 R 会话时不会关闭;它们必须在任务管理器中手动删除。有十几名工人,这很快就会变得很麻烦。

是否可以将这些进程设置为在父 R 会话关闭时关闭?

您始终必须在并行处理后关闭连接。请尝试以下示例:

library(parallel)

cluster <- makeCluster(3)
clusterCall(cluster, f)
stopCluster(cluster) # always add this line in the end of the script