1

makeCluster我创建了自己的 R 包,其中包含使用类似等并行函数的函数parLapply。但是,它们在包内部的速度比在外部使用的要慢得多。集群的初始化和导出对象的速度较慢...您有提示如何在自己的 R 包中正确使用并行函数吗?

使用并行的示例:

cl <- parallel::makeCluster(parallel::detectCores()-1)
parallel::clusterExport(cl, varlist = c("data"), envir = environment())
parallel::clusterCall(cl, function() {library(myPackage)})
data_res <- parallel::parLapply(cl, 1:nrow(data), function(i) {
    tryCatch(myFun(data[i,]), error = function(err) {return(data.table(row = i))})
})
if(!is.null(cl)) {
  parallel::stopCluster(cl)
  cl <- c()
}
gc()

谢谢

4

0 回答 0