-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
R is not yet thread safe. We are working on it, and I hope to make some progress before the end of the year. (This one even!) D. [EMAIL PROTECTED] wrote: > Dear R-dev, > > I would like to accelerate my R computation by using parallel OpenMP compilers > (e.g from Pathscale) on a 2-processor AMD server and I would like to know > whether R is a tread safe library. The main kernel of the OpenMP > parallelization is a C SEXP function that performs the computational routine > in > parallel with: > > ******************* > SEXP example(SEXP list, SEXP expr, SEXP rho) > { > R_len_t i, n = length(list); > SEXP ans, alocal; > > omp_lock_t lck; > PROTECT(ans = allocVector(VECSXP, n)); > ans = allocVector(VECSXP, n); > omp_init_lock(&lck); > #pragma omp parallel for default(none) private(i, alocal) shared(list, > lck,rho, ans, n, expr) > for(i = 0; i < n; i++) { > > omp_set_lock(&lck); > PROTECT(alocal = allocVector(VECSXP, 1)); > alocal = allocVector(VECSXP, 1); > defineVar(install("x"), VECTOR_ELT(list, i), rho); > omp_unset_lock(&lck); > > /* do computational kernel in parallel */ > alocal = eval(expr, rho); > > omp_set_lock(&lck); > SET_VECTOR_ELT(ans, i, alocal); > UNPROTECT(1); > omp_unset_lock(&lck); > > } > setAttrib(ans, R_NamesSymbol, getAttrib(list, R_NamesSymbol)); > UNPROTECT(1); > return(ans); > } > > *********** > > The code works fine using one thread and breaks currently down with 2 > threads. > I am using a recent R distribution and the complete R code is compile with > "-openmp" and the Pathscale compiler suite. > > Thanks in advance, > Olaf > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel - -- Duncan Temple Lang [EMAIL PROTECTED] Department of Statistics work: (530) 752-4782 371 Kerr Hall fax: (530) 752-7099 One Shields Ave. University of California at Davis Davis, CA 95616, USA -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (Darwin) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFDb8ia9p/Jzwa2QP4RAjHoAJ9/VVL5DIRwE4tYjwM+0oQPKjmQ4QCeNzFa lX6CVF5yVQZPNSE3bZPr7q4= =hsjc -----END PGP SIGNATURE----- ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel