[Rd] R thread safe
Duncan Temple Lang
duncan at wald.ucdavis.edu
Mon Nov 7 22:35:22 CET 2005
-----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.
Olaf.Schenk at unibas.ch 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 at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
- --
Duncan Temple Lang duncan at wald.ucdavis.edu
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-----
More information about the R-devel
mailing list