gpt4 book ai didi

r - 使用 ClusterEvalQ 编译 Rcpp 函数

转载 作者:行者123 更新时间:2023-12-01 08:36:20 24 4
gpt4 key购买 nike

我正在从事一个需要在 R 中进行并行处理的项目,而且我是 doparallel 包的新手。我想做的是使用并行化的 foreach 循环。由于问题的性质,这个 foreach 循环将需要执行多次。我遇到的问题是我在循环中使用了 cppfunction 和 cfunction。

当前的解决方法是为集群调用 clusterEvalQ() 并编译相关函数。但是,这非常慢(4 核约 10 秒)。我在下面包含了相关代码。有什么办法可以加快速度吗?谢谢。

clusterEvalQ(cl, {
library("inline")
library("Rcpp")
source("C_functions.R")
})

最佳答案

是的,有一种方法可以加快编译速度一次

特别是,将所有编译后的代码放入R 包中。从那里,将 R 包安装到集群上,然后加载该包。在并行代码中,调用包中的函数。

这是必需的,因为导入到 R 中的 C++ 函数是特定于 session 的。因此,每个 session 都需要自己的编译。编译是“昂贵”的部分。

此外,do not use the inline package .相反,您应该使用 Rcpp Attributes .

关于r - 使用 ClusterEvalQ 编译 Rcpp 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57243011/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com