[Rd] Parallel R expression evaluations
JaiReddy
avula.jayakrishna at gmail.com
Wed Oct 16 15:57:27 CEST 2013
Hi all,
I am using R-3.0.1 under Linux platform to embed R into my C++ code.
I am facing an error while executing more than 1 R-expressions parallelly.
I am executing round(X) and abs(X) parallelly on a set of 50 input rows
which resulted in segmentation fault after getting the following errors.
Error: unprotect_ptr: pointer not found
Error: argument to 'findVar' is not an environment
I am using the following code snippet for initializing R, parsing and
evaluation of R expression
// For initialization
int res= Rf_initEmbeddedR(R_argc, (char**)R_argv);
// For parsing and evaluation
SEXP cmd1= Rf_mkChar(rscript);
SEXP cmdSexp, cmdexpr, sresult = R_NilValue;
ParseStatus status;
R_len_t i=0;
PROTECT(cmdSexp = Rf_allocVector(STRSXP, 1));
SET_STRING_ELT(cmdSexp, 0, cmd1);
// parsing vector for R expressions
cmdexpr = PROTECT(R_ParseVector(cmdSexp, -1, &status, R_NilValue));
if (status != PARSE_OK) {
UNPROTECT(2);
// error handling
return;
}
for(i = 0; i < Rf_length(cmdexpr); i++)
{
int error;
sresult = R_tryEval(VECTOR_ELT(cmdexpr, i), R_GlobalEnv, &error); // R
expression evaluation
if(error) // checking for error
{
// error handling
return;
}
}
UNPROTECT(2);
I wonder if R supports parallel evaluations within a single session. I have
seen parallel evaluations of R using Rserve package. As I am trying to
overcome the overhead (using Rserve) in creating new connection for each
evaluation, here I am trying using embeded R.
I tried Rf_endEmbeddedR each time after one evaluation and initializing R
for the next set of evaluation. Even that did't work.
Please suggest me possible solution if any.
Thanks in advance.
Jai
--
View this message in context: http://r.789695.n4.nabble.com/Parallel-R-expression-evaluations-tp4678352.html
Sent from the R devel mailing list archive at Nabble.com.
More information about the R-devel
mailing list