14 int main(
int argc,
char *argv[]) {
18 int sndcnt = 1, rcvcnt = 1;
19 MPI_Init(&argc,&argv);
20 MPI_Comm_rank(MPI_COMM_WORLD, &myrank);
21 MPI_Comm_size(MPI_COMM_WORLD, &nodesize);
23 double *allvalues =
new double[nodesize];
27 int rangeMin = 0, rangeMax = 10;
33 std::stringstream txt;
34 txt <<
"x <- " << rangeMin << std::endl;
37 txt <<
"y <- " << rangeMax << std::endl;
40 txt <<
"n <- " << sampleSize << std::endl;
43 std::string evalstr =
"mean(runif(n,x,y))";
44 Rcpp::NumericVector m = R.
parseEval(evalstr);
48 MPI_Gather(&sendValue, sndcnt, MPI_DOUBLE, allvalues, rcvcnt, MPI_DOUBLE, 0, MPI_COMM_WORLD);
51 std::cout <<
"node " << myrank <<
" has mean " << m(0) << std::endl;
53 }
catch(std::exception& ex) {
54 std::cerr <<
"Exception caught: " << ex.what() << std::endl;
56 std::cerr <<
"Unknown exception caught" << std::endl;
61 std::cout <<
"values of all " << nodesize <<
" trials: " << std::endl;
62 for (
int i = 0; i < nodesize; i++ )
63 std::cout << allvalues[ i ] <<
", ";
64 std::cout << std::endl;
void parseEvalQ(const std::string &line)
int parseEval(const std::string &line, SEXP &ans)
int main(int argc, char *argv[])