Naive parallel implementation of Mersenne Twister random numbergenerator

M

mjm2114

Hi there,

I have a question on a naive implementation of a parallel MT that I've
done using the fortran version of MT19937ar.f posted in Prof.
Matsumoto's website. (http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/
MT2002/emt19937ar.html)

First, I setup a KISS RNG (Marsaglia, 1999)
in the master node and seed it. I then use the first 4 outputs from
the master node to
seed the MT in the first worker node
using subroutine init_by_array. I continue in the
same manner for all subsequent worker nodes, taking the next 4
outputs from the master node and using them to seed the MT in all
worker nodes. Once this is done, I have a different MT ready for use
in all the worker nodes. Do you think this is a good approach? I know
that the seeds used to set up each worker node MTs
have some correlation (since they are produced by the
same KISS RNG), but given the gigantic
period of the MT algorithm and the fact that KISS and MT are so
different,
wouldn't these correlations be insignificant
for all practical purposes?

I know I can't expect perfectly uncorrelated streams of outputs in
each node as in serious parallel PRNGs (i.e. SPRNG), but I'm only
going to use the code for small workstations/clusters of 8-16 nodes
(using mpi). Any ideas on the max number of uncorrelated streams I can
expect?

Thanks

Manuel
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,483
Members
44,902
Latest member
Elena68X5

Latest Threads

Top