Parallel Random Number Generators in R

Is there an implementation of parallel Mersenne-Twister and Wichmann-Hill random number generators in R? I am using the package parallel, but it seems that there is only an implementation of the parallel random number generator L'Ecuyer.

+4
source share
1 answer

The default random number generator in R is Mersenne-Twister. You can switch between them using

setRNG('Wichmann-Hill')
setRNG('default')#or setRNG('Mersenne-Twister')

If you want to generate numbers in parallel, you can use a package foreach.

require(foreach)
require(doParallel)
c1 <- makeCluster(2)
registerDoParallel(c1)
generateRandom <- function(rng='default',n) {
  setRNG(rng)
  runif(n)
}
result = foreach(i = 1:2,rng = c('default','Wichmann-Hill'), .combine = 'c') %dopar%
  generateRandom(rng,1e7)
stopCluster(c1)

20 U (0,1), .

0

Source: https://habr.com/ru/post/1569839/


All Articles