r - parLapply 超时选项

标签 r parallel-processing apply

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

parLapply(cl, df, fun = SomeFunction)

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

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

我知道R.utils包有一个withTimeOut函数,它工作得很好(当有循环退出时 - apply本质上是一个循环)。 并行应用系列是否有类似的功能?

最佳答案

使用与 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)

关于r - parLapply 超时选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53502219/

相关文章:

r - 排除 R 中 df 中顶部和底部 1% 的数据

c - 为什么我的程序在嵌套时会生成随机结果?

Go 并发 : Chudnovky's algorithm, 比同步慢

parallel-processing - 具有动态数量的并行消费者的 Kafka 工作队列

r - 按组和变量名称缩放 R 数据框中的值

R 获取列的所有组合并对它们执行函数返回对称矩阵?

r - 在 R 中关闭 options() Debug模式

r - 在 R/Shiny 中,htmlOutput()/renderUI() 的最佳替代方案?

r - MLR - getBMRModels - 如何从基准测试结果访问每个模型

javascript - 使用 Function.prototype.apply 设置 javascript 回调范围