gpt4 book ai didi

r - 是否可以将 Rcpp 函数传递给子进程?

转载 作者:行者123 更新时间:2023-12-03 22:20:28 24 4
gpt4 key购买 nike

我使用 Rcpp 定义了一个函数,它在当前 session 中运行。所以我尝试使用 future包在每个工作进程中编译相同的函数,但我遇到了错误

Error: Error 1 occurred building shared library.



是否有一种无需构建包即可共享 Rcpp 函数的简单方法?

请参阅下面的 MWE
library(Rcpp)
cppFunction('
NumericVector test(Rcpp::NumericVector x) {
return x;
}')

# test if compiled successful
test(1:2)

lapply(list(1:2), test) # works

future_lapply(list(1:2), function(a) {
library(Rcpp)
cppFunction('
NumericVector test(Rcpp::NumericVector x) {
return x;
}')
test(a)
})

最佳答案

这个问题实际上相当于通过,例如 foreach 传播基于 Rcpp 的函数。 .简而言之,您不能序列化基于 Rcpp 的函数并将其传递。

它们位于一个“随机”的本地内存点。唯一可靠的方法是将它们粘在一个包裹中,并让每个 worker 装载包裹。那可行。

关于r - 是否可以将 Rcpp 函数传递给子进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47544658/

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