1
Rcpp를 사용하여 함수를 정의했으며 현재 세션에서 실행됩니다. 그래서 패키지를 구축 할 필요없이 Rcpp 기능을 공유 할 수있는 방법에 쉽게 거기에 나는 각 작업자 프로세스에서 동일한 기능을 컴파일 future
패키지를 사용하려고하지만 오류Rcpp 함수를 자식 프로세스에 전달할 수 있습니까?
Error: Error 1 occurred building shared library.
로 실행?
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)
})
당신이하고 싶은 일은 근본적으로 Rcpp 기반의 기능을'foreach'를 통해 전파하는 것과 같습니다. 요컨대, 당신은 할 수 없습니다. 그들은 "임의의"로컬 메모리 포인트에 앉아 있습니다. _ 신뢰할 수있는 유일한 방법은 패키지에 이들을 고정시키고 각 작업자에게 패키지를로드하는 것입니다. 그게 효과가있다. –
포인터를 통해 위치를 공유하고 포인터를 작업자에게 전달하는 방법이 있습니까? – xiaodai
문제는 전송해야하는 메모리 내용입니다. 당신은 할 수 없습니다. 그러므로 패키지. –