Individual random number daemons?

Sent from my iPhone

On 18 May 2013, at 21:53, "Randy J. Ray" <rj...@blackperl.com> wrote:

> (It's a pun, see, because I'm going to be asking about random number 
> generators... get it? Get it...?)
> 
> (Short, TL;DR summary: I'm looking for a pRNG that can have multiple 
> instances at once that don't affect each others' stream of numbers. Does 
> Math::Random::MT meet that criteria?)
> 
> I considered posing this to Perlmonks, but I just don't frequent that site 
> like I used to. And there are enough Large Perl Brains on this list that I 
> should get as good an answer, if not better.
> 
> I am looking for a pRNG (pseudo-Random Number Generator) module. But I have 
> an unusual requirement-- I need to be able to instantiate multiple 
> *independent* generators, that can take seeds for the sake of reproducible 
> results. Let me explain...
> 
> My current (paying) job is writing frameworks for automated QA of my 
> company's software (mainly the operating system that runs our storage 
> servers). We are working on a new approach to how we structure some of our 
> tests, and that happens to involve the potential of using some randomization 
> to select different paths over a directed graph. But, this being QA-oriented, 
> even if something runs with a degree of randomness to it, it needs to be 
> reproducible at a later time. So, no problem, just create a seed for srand() 
> and log that seed, and also provide users a way to specify a seed at the 
> start. Then you can just re-use the seed and reproduce your results. Right? 
> Well, not exactly...
> 
> Other libraries I use, developed by other teams within our company, might 
> also have some randomization in them (like generating random names for disk 
> volumes, randomizing data generation for traffic testing, etc.). Not to 
> mention that we use no small number of CPAN modules, some of which might use 
> rand() as well. I could seed Perl's RNG with a specific seed, but if that run 
> has to try twice to generate a unique file name, instead of one or thrice, 
> that will affect the random numbers *my* code gets.
> 
> So my thought was that sure there's a RNG module out there that is OO, and 
> encapsulates the seed and all other internal elements of the generation 
> process. One that I can instantiate multiple instances of, and have them 
> generate streams of random numbers that are independent of each other. The 
> closest I've found is Math::Random::MT, which implements the Mersenne Twister 
> pRNG. But I can't immediately tell from the docs whether the object instances 
> it creates are truly independent of each other or not.
> 
> So, is this something anyone else here has dealt with? Are there modules I 
> just haven't stumbled upon yet, that would do this for me? Any help greatly 
> appreciated, as always.
> 
> Randy
> -- 
> """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
> Randy J. Ray      Sunnyvale, CA      http://www.rjray.org rj...@blackperl.com
> twitter.com/rjray
> Silicon Valley Scale Modelers: http://www.svsm.org

Reply via email to