Поэтому мне никогда не приходилось делать различие между двумя встроенными функциями. Ответ обновлен с помощью

исал функцию вRcpp и скомпилировал это сinline, Теперь я хочу запустить его параллельно на разных ядрах, но получаю странную ошибку. Вот минимальный пример, где функцияfunCPP1 может быть скомпилирован и работает сам по себе, но не может быть вызванsnow«sclusterCall функция. Функция хорошо работает как отдельный процесс, но выдает следующую ошибку при параллельном запуске:

Error in checkForRemoteErrors(lapply(cl, recvResult)) : 
  2 nodes produced errors; first error: NULL value passed as symbol address

И вот некоторый код:

## Load and compile
library(inline)
library(Rcpp)
library(snow)
src1 <- '
     Rcpp::NumericMatrix xbem(xbe);
     int nrows = xbem.nrow();
     Rcpp::NumericVector gv(g);
     for (int i = 1; i < nrows; i++) {
      xbem(i,_) = xbem(i-1,_) * gv[0] + xbem(i,_);
     }
     return xbem;
'
funCPP1 <- cxxfunction(signature(xbe = "numeric", g="numeric"),body = src1, plugin="Rcpp")

## Single process
A <- matrix(rnorm(400), 20,20)
funCPP1(A, 0.5)

## Parallel
cl <- makeCluster(2, type = "SOCK") 
clusterExport(cl, 'funCPP1') 
clusterCall(cl, funCPP1, A, 0.5)

Ответы на вопрос(2)

Ваш ответ на вопрос