【发布时间】:2021-05-18 23:23:12
【问题描述】:
我正在开发一个 R 包,我需要在使用 parallel::parLapply 的集群上运行函数 myfun。 myfun 从我的包中调用了几个额外的函数,这些函数又调用了更多的函数,其中一些函数有多个方法……所以通过名称显式地将所有函数和方法传递给集群非常麻烦。
据我了解,standard advice 是运行
parallel::clusterEvalQ({library("my_package")})。但是对library("my_package") 的调用显然是对 R-CMD-check 的厌恶。而且我有理由相信my-package:::function 也不会在 CRAN 上飞行。
这里的标准方法是什么?我需要按名称导出每个相关的函数和方法吗?
【问题讨论】:
-
内部函数可能对包的用户不可用,但可以被包内的任何函数轻松调用。你真的用
parallel测试过代码吗? -
@SinhNguyen 问题是如何将函数导出到集群。我当然测试过代码,但我真的不知道我在做什么,因为我主要在 Mac 上工作并通过分叉来做多核工作。
-
@SinhNguyen 另请注意,挑战不是在本地获得有效的实现;挑战在于获得通过 R-CMD-check 的实现。
-
只有当你想在 CRAN 上提交你的包时,R CMD 检查才是真正重要的,世界不会因为你收到警告就结束
-
我确实想把我的包裹放在 CRAN 上 :)
标签: r parallel-processing r-package