  The techniques used to generate pseudo-random numbers for Monte Carlo (MC)
applications bear many implications on the quality and speed of that programs
work. As a random number generator (RNG) slows, the production of random
numbers begins to dominate runtime. As RNG output grows in correlation, the
final product becomes less reliable.
  These difficulties are further compounded by the need for reproducibility and
parallelism. For reproducibility, the numbers generated to determine any
outcome must be the same each time a simulation is run. However, the
concurrency that comes with most parallelism introduces race conditions. To
have both reproducibility and concurrency, separate RNG states must be tracked
for each independently schedulable unit of simulation, forming independent
random number streams.
  We propose an alternative to the stride-based parallel LCG seeding approach
that scales more practically with increased concurrency and workload by
generating seeds through hashing and allowing for repeated outputs. Data
gathered from normality tests of tally results from simple MC transport
benchmark calculations indicates that the proposed hash-based RNG does not
significantly affect the tally result normality property as compared to the
conventional stride-based RNG.
