There are several parallel rng projects out there that look into this sort
of thing. I don't know the quality of what they have; I have just started
looking and it is not my highest priority by any means (actually pretty low,
but I happen to be interested). I do know that folks pay attention to doing
this correctly in the physics community; I don't know how big a deal it is.
There are ways of course to test the quality of a rng scheme; I probably
will try to figure those issues out at some point to convince myself that
whatever we do in parallel, it is good. My position on this has been, and
remains, two sided: 1) until I get around to finding what is theoretically
correct, I don't want to risk replacing what we have with something that may
or may not be sound, and 2) I would prefer some easy way to insure
repeatability - I know you don't have to enforce it in all runs, though it
sure as heck can make your life simpler if you do (I sure don't want a
scenario where I can't reproduce a run for at least 300 steps, just for
software dev reasons; I wish I could make the 300 about 1,000,000, but we
know the world we live in).
Regards - Bob
----- Original Message -----
From: "David A. Case" <case.scripps.edu>
To: <amber-developers.scripps.edu>
Sent: Tuesday, May 06, 2008 6:47 PM
Subject: Re: amber-developers: Verlet update time and ntt=3 parallel scaling
> On Tue, May 06, 2008, Robert Duke wrote:
>
>> This is a very well known issue with ntt 3, caused by the nonscaling
>> nature
>> of the random number generator in use. To run separate rng's in each
>> process would potentially be theoretically unsound, so we run through the
>> sequence of all random numbers in all processors.
>
> I think the *main* reason for running through all random numbers on each
> machine is for testing: this ensures that you get the same trajectory (at
> least for some number of steps) no matter how many cpus are used.
>
> I think there would be no problem in starting each node with its own seed
> (say
> from setting ig=-1), and modifying the code so the extra calls to random()
> are
> not used. The statistical properties of the rng are supposed to be
> independent of the seed, and as long as each node is not using the same
> seed,
> I don't see a problem. [But I don't know how to *prove* this.]
>
> ...dave
>
>
Received on Wed May 07 2008 - 06:07:52 PDT