[Halld-offline] genr8 software request

Curtis A. Meyer cmeyer at ernest.phys.cmu.edu
Sat Dec 4 16:50:45 EST 2010


I concur that this is a pretty important question, and should probably 
be resolved now,
rather than later.

   Curtis
On 12/4/10 3:11 PM, Richard Jones wrote:
> Mark,
>
> This issue of how random number generators are initialized deserves a 
> more general discussion, leading to an agreed policy, I think.  I also 
> ran into this recently when I submitted a couple thousand parallel 
> simulation jobs on the OSG, and about 30% of them ended up duplicating 
> a seed used by another job.  Again, I traced it down to the outdated 
> practice of using unix time() to seed the random number generator.  I 
> say "outdated", although I think there never really was a time when it 
> made sense to do that, except for run-once-and-throw-away software 
> projects.
>
> All of our applications that use random numbers should have a 
> command-line option for passing in the seed, but that only begs the 
> question.  What is a good source of seeds for Gluex software in need 
> of pseudo-random sequences?  I can think of several good options we 
> might consider:
>
>    1. /dev/random - this is a pretty good attempt by the linux kernel
>       folks to provide us with true random numbers, for things like
>       secure key generation where it really matters.  It collects
>       entropy from the OS environment and keeps track of how much
>       entropy it spends each time it makes a random number for you. 
>       The down side is that you can easily drain the entropy pool,
>       after which your reads might wait for quite a while for the
>       entropy to build up again, depending on how busy the system is. 
>       You open and read from /dev/random just like any file, but don't
>       read more bytes than you are going to use, because it depletes
>       the pool.
>    2. /dev/urandom - this behaves like /dev/random, except that it
>       never blocks.  If it runs low in entropy then it just continues
>       to supply pseudo-random numbers, in the spirit of the
>       pseudo-random number generators used internally by our software.
>    3. a web service, similar to the one provided by
>       http://www.random.org.  Of course we do not require all of the
>       statistical properties guaranteed by random.org, and we don't
>       want to pay their fees.  But we could make our own web service
>       hosted on a jlab server and replicated at other sites to ensure
>       high availability, and make a command-line tool that grabs a
>       given number of bytes and spit them out on standard out.  Using
>       this service might look something like "$ genr8 -s
>       `get_gluex_randoms -n 2 -f '%d' ` ..."
>
> If one wanted to be able to run "off the grid", the command 
> "get_gluex_randoms" could fail over to /dev/random or /dev/urandom if 
> the internet could not be reached.
>
> Comments?
>
> -Richard J.
>
>
>
>
>
>
> On 12/3/2010 8:25 AM, David Lawrence wrote:
>> Hi Kei,
>>
>>       I'll modify the program to allow the seed to be set explicitly via
>> command line argument. I'll let you know when the modification is available.
>>
>> Regards,
>> -David
>>
>> On 12/2/10 4:45 PM, Kei Moriya wrote:
>>> Dear Offliners,
>>>
>>> I have been working on the Hall D simulation packages,
>>> and have encountered an issue with genr8, and was wondering
>>> if anybody could help me.
>>>
>>> The issue I encountered is that the seed used for the
>>> random generator in genr8 is the current time,
>>> so if the program is run consecutively within the same
>>> second, the generated result is exactly the same, and I end
>>> up with several copies of the same files.
>>>
>>> I think that the use of the current time should be avoided,
>>> not just because of the behavior above, but also because
>>> it becomes impossible to reproduce the same file at a later
>>> time if necessary.
>>>
>>> I think passing the seed in as another runtime parameter
>>> to genr8 would require only a few lines of extra code.
>>> Could somebody do this for me, or point me to how to update
>>> the program myself?
>>>
>>> Thanks in advance.
>>>
>>> 	Kei Moriya
>>> _______________________________________________
>>> Halld-offline mailing list
>>> Halld-offline at jlab.org  <mailto:Halld-offline at jlab.org>
>>> https://mailman.jlab.org/mailman/listinfo/halld-offline
>> _______________________________________________
>> Halld-offline mailing list
>> Halld-offline at jlab.org  <mailto:Halld-offline at jlab.org>
>> https://mailman.jlab.org/mailman/listinfo/halld-offline
>
>
> _______________________________________________
> Halld-offline mailing list
> Halld-offline at jlab.org
> https://mailman.jlab.org/mailman/listinfo/halld-offline


-- 
Prof. Curtis A. Meyer		Department of Physics
Phone:	(412) 268-2745		Carnegie Mellon University
Fax:	(412) 681-0648		Pittsburgh PA 15213-3890
cmeyer at ernest.phys.cmu.edu	http://www.curtismeyer.com/


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.jlab.org/pipermail/halld-offline/attachments/20101204/5459e63f/attachment-0002.html>


More information about the Halld-offline mailing list