sourceCpp() с паралелен

Използването на sourceCpp изглежда не работи с паралел. Как мога да извикам 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