sourceCpp() с параллельным [дубликатом]

Использование sourceCpp, похоже, не работает с parallel. Как я могу вызвать функцию Rcpp в кластере parallel?

Мой пример:

test.cpp файл:

#include <Rcpp.h>
using namespace Rcpp;

// [[Rcpp::export]]
NumericVector timesTwo(NumericVector x) {
  return x * 2;
}

И файл R:

library(parallel)
library(Rcpp)
sourceCpp("test.cpp")
timesTwo(1)
# [1] 2

cl <- makeCluster(2)
clusterEvalQ(cl, {
  library(Rcpp)
  sourceCpp("test.cpp")
  timesTwo(1)
})
# Error in checkForRemoteErrors(lapply(cl, recvResult)) : 
# 2 nodes produced errors; first error: Error 1 occurred building shared library.
stopCluster(cl)

person kennyB    schedule 24.06.2015    source источник
comment
Положите его в пакет.   -  person nrussell    schedule 24.06.2015
comment
Он отлично работает на моей машине (Windows 8.1, R 3.2.0, Rcpp 0.11.6. Глядя на stackoverflow.com/ questions/6074310/snow-inline-rcpp другой вариант — поместить вашу функцию в локальный пакет.   -  person Nick Kennedy    schedule 24.06.2015


Ответы (1)


Кажется, теперь это работает, когда я поместил функции в пакет.

person kennyB    schedule 24.06.2015