<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    I concur that this is a pretty important question, and should
    probably be resolved now,<br>
    rather than later.<br>
    <br>
    &nbsp; Curtis<br>
    On 12/4/10 3:11 PM, Richard Jones wrote:
    <blockquote cite="mid:4CFAA088.6000201@uconn.edu" type="cite"> Mark,<br>
      <br>
      This issue of how random number generators are initialized
      deserves a more general discussion, leading to an agreed policy, I
      think.&nbsp; 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.&nbsp; Again, I
      traced it down to the outdated practice of using unix time() to
      seed the random number generator.&nbsp; 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.<br>
      <br>
      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.&nbsp; What is a good source of seeds for Gluex software
      in need of pseudo-random sequences?&nbsp; I can think of several good
      options we might consider:<br>
      <ol>
        <li>/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.&nbsp; 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.&nbsp; 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.&nbsp; 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.<br>
        </li>
        <li>/dev/urandom - this behaves like /dev/random, except that it
          never blocks.&nbsp; 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.</li>
        <li>a web service, similar to the one provided by <a
            moz-do-not-send="true" href="http://www.random.org">http://www.random.org</a>.&nbsp;
          Of course we do not require all of the statistical properties
          guaranteed by random.org, and we don't want to pay their
          fees.&nbsp; 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.&nbsp; Using this
          service might look something like "$ genr8 -s
          `get_gluex_randoms -n 2 -f '%d' ` ..."&nbsp; <br>
        </li>
      </ol>
      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.<br>
      <br>
      Comments?<br>
      <br>
      -Richard J.<br>
      <br>
      <br>
      <br>
      <br>
      <br>
      <br>
      On 12/3/2010 8:25 AM, David Lawrence wrote:
      <blockquote type="cite" cite="mid:4CF8EFBE.3090508@jlab.org">
        <pre wrap="">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:
</pre>
        <blockquote type="cite">
          <pre wrap="">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
<a moz-do-not-send="true" href="mailto:Halld-offline@jlab.org">Halld-offline@jlab.org</a>
<a moz-do-not-send="true" href="https://mailman.jlab.org/mailman/listinfo/halld-offline">https://mailman.jlab.org/mailman/listinfo/halld-offline</a>
</pre>
        </blockquote>
        <pre wrap="">_______________________________________________
Halld-offline mailing list
<a moz-do-not-send="true" href="mailto:Halld-offline@jlab.org">Halld-offline@jlab.org</a>
<a moz-do-not-send="true" href="https://mailman.jlab.org/mailman/listinfo/halld-offline">https://mailman.jlab.org/mailman/listinfo/halld-offline</a>
</pre>
      </blockquote>
      <br>
      <pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
Halld-offline mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Halld-offline@jlab.org">Halld-offline@jlab.org</a>
<a class="moz-txt-link-freetext" href="https://mailman.jlab.org/mailman/listinfo/halld-offline">https://mailman.jlab.org/mailman/listinfo/halld-offline</a></pre>
    </blockquote>
    <br>
    <br>
    <pre class="moz-signature" cols="72">-- 
Prof. Curtis A. Meyer                Department of Physics
Phone:        (412) 268-2745                Carnegie Mellon University
Fax:        (412) 681-0648                Pittsburgh PA 15213-3890 
<a class="moz-txt-link-abbreviated" href="mailto:cmeyer@ernest.phys.cmu.edu">cmeyer@ernest.phys.cmu.edu</a>        <a class="moz-txt-link-freetext" href="http://www.curtismeyer.com/">http://www.curtismeyer.com/</a>      

</pre>
  </body>
</html>