[Rcpp-devel] Distribution functions threadsafe in RcppParallel?

Dirk Eddelbuettel edd at debian.org
Mon Apr 16 05:33:29 CEST 2018


On 16 April 2018 at 13:41, Murray Efford wrote:
| I read in the RcppParallel blurb "The code that you write within parallel
| workers should not call the R or Rcpp API in any fashion", which is
| admirably clear. However, it leaves me without threadsafe access to
| distribution functions (dpois, dbinom etc.). In practice, so far, these R
| API calls seem to work for me, but can they be trusted? Is there an
| alternative?

That's a fair question. They may work, as they are also exposed / available
via the standalone R math library (see Writing R Extensions).

As such, they may not required memory allocations or other interactions with
the R process and hence "not call R ... in any fashion" per the above. 

But we can't say for sure. If you want to be safe, maybe stick to 
equivalent functions from a non-R source: C++11, Boost, ...  

Dirk

| (It seems this question must have arisen before, but I haven't found an
| answer)

-- 
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org


More information about the Rcpp-devel mailing list