将 R 包函数导出到 R 包内的并行集群
Export R package functions to parallel cluster within the R package
我正在处理的 R 包中有一些函数(如 function1
)依赖于我包中的辅助函数(如 h_function1
和 h_function2
)。我正在并行化以在我的包中的另一个函数中重复调用 function1
。
目前,在我的包中,我正在使用代码
parallel::clusterExport(cl, varlist=c("h_function1", "h_function2"), envir=environment())
parallel::parSapply(X=1:100, FUN=function1, cl=cl)
其中 cl
是来自传递给函数的并行包的集群。然而,这假设辅助函数 h_function1
和 h_function2
从我的包加载到本地环境中,这对某些用户来说可能不是真的。
有什么方法可以灵活地将函数导出到集群?是否可以通过包名导出包的所有函数?
我通常使用以下代码执行此操作:
parallel::clusterEvalQ({library("<package-name>")})
我正在处理的 R 包中有一些函数(如 function1
)依赖于我包中的辅助函数(如 h_function1
和 h_function2
)。我正在并行化以在我的包中的另一个函数中重复调用 function1
。
目前,在我的包中,我正在使用代码
parallel::clusterExport(cl, varlist=c("h_function1", "h_function2"), envir=environment())
parallel::parSapply(X=1:100, FUN=function1, cl=cl)
其中 cl
是来自传递给函数的并行包的集群。然而,这假设辅助函数 h_function1
和 h_function2
从我的包加载到本地环境中,这对某些用户来说可能不是真的。
有什么方法可以灵活地将函数导出到集群?是否可以通过包名导出包的所有函数?
我通常使用以下代码执行此操作:
parallel::clusterEvalQ({library("<package-name>")})