Sean, couple of questions:

1) Do you think it's a good idea as long as we are still using an older version of MASON to pulse the MersenneTwisterFast ourselves? Should we do so by calling getNewInt() 1249 times?

2) I don't know how common it is for other modellers but I often give each agent its own mersenne twister fast randomizer to decouple their random behavior from the activation time (and potentially from the rest of the model as well). These randomizers wouldn't be touched by state.start().
Would it be better to either pulse the mersenneTwisterFast at construction or at least have a utility method to pulse the randomizer ourselves?

Thanks! And great about the doLoop()!


On Tue, May 13, 2014 at 9:02 PM, Sean Luke <[log in to unmask]> wrote:
I want to give everyone a heads-up on a change made to MASON tonight.  SimState.start() now pulses the random number generator 1249 times before running the simulation.  As a result, simulations you had previously run with specific seeds will have different outcomes than before.

Why do this?  MersenneTwister initially returns the values used to seed it initially via its Knuth seeding generator.  These values are okay but not fantastically random.  After you pulse it about 624 times, these values are replaced with good solid MT numbers.  I'm pulsing it two rounds plus one extra (1249 = 624 * 2 + 1).

Also in case you're interested, MASON's doLoop() method now supports running multiple simulations in parallel at the command line.  I'm getting pretty good speedups with it.

Sean



--
Ernesto Carrella
http://carrknight.github.io/