parLapply超时选项

时间:2018-11-27 14:46:51

标签: r parallel-processing apply

我正在使用parLapply并行运行一个函数,如下所示:

parLapply(cl, df, fun = SomeFunction)

其中cl是我预先注册的集群。

但是函数执行时间太长,我想在执行时间太长时退出。

我知道R.utils包具有withTimeOut函数,该函数很好用(当存在从-退出的循环,而本质上是apply的循环)。 并行应用系列是否有类似功能?

1 个答案:

答案 0 :(得分:2)

使用与parLapply非常相似的foreach,我可以做到:

library(doParallel)
registerDoParallel(cl <- makeCluster(2))
foreach(ic = 1:5) %dopar% {
  withCallingHandlers({ 
    setTimeLimit(elapsed = 4, transient = TRUE)
    Sys.sleep(ic)
  }, error = function(e) stop("timeout"))
}
stopCluster(cl)