R + snow + cluster:当主人死亡时杀死奴隶

时间:2018-03-14 12:52:42

标签: r parallel-processing cluster-computing kill snow

我使用Ubuntu 16 LTS中的集群(SOCK类型)将我的R代码与雪并行化。下面是一个更简单的代码示例:

# Make cluster of type SOCK
cl <- makeCluster(hostsList, type = "SOCK")
clusterExport(cl, "task");

# Compute long time tasks
result <- clusterApplyLB(cl, 1:50, function(x) task(x))

# Stop cluster
stopCluster(cl)

任务函数可能需要很长时间(几分钟或几小时),但由于某些原因,在我的应用程序中没有必要继续计算任务,应用程序无法停止所有从属进程。 我可以杀死主R进程,但R从属进程一直保留到完成(即在几个时间内保持使用CPU)。

我无法杀死从属进程,因为它们的父进程是系统进程(PPID = 1)所以我不知道哪些从属进程与我想要停止的主进程相关。我还尝试使用一种中断让主R进程执行stopCluster函数而不成功。

深度搜索后,我没有找到解决方案。那么,有没有人知道停止/杀死奴隶的方法或有想法解决这个问题?

提前致谢!

0 个答案:

没有答案