问题描述
我正在使用的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>")})