【问题标题】:Export R package functions to parallel cluster within the R package将 R 包函数导出到 R 包内的并行集群
【发布时间】:2020-10-20 23:52:31
【问题描述】:

我正在处理的 R 包中有一些函数(如 function1)依赖于我的包中的辅助函数(如 h_function1h_function2)。我正在并行化以在我的包中的另一个函数中重复调用 function1

目前,在我的包中,我正在使用代码

parallel::clusterExport(cl, varlist=c("h_function1", "h_function2"), envir=environment())
parallel::parSapply(X=1:100, FUN=function1, cl=cl)

其中cl 是传入函数的并行包中的集群。然而,这假设帮助函数 h_function1h_function2 是从我的包中加载到本地环境中的,这对于某些用户来说可能不是真的。

有什么方法可以灵活地将函数导出到集群中?是否可以通过包名导出包的所有功能?

【问题讨论】:

  • 如果所有这些函数都存在于您的包命名空间中,那么您不需要(不需要)假设用户已将任何内容加载到“本地环境”中。

标签: r parallel-processing r-package rparallel


【解决方案1】:

我通常用下面的代码来做这个:

parallel::clusterEvalQ({library("<package-name>")})

【讨论】:

    猜你喜欢
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-07
    • 1970-01-01
    • 2018-04-28
    • 2017-10-12
    • 2022-01-18
    相关资源
    最近更新 更多