Hi Daniel,

Okay, I think I understand the problem now. It used to be so that the
random numbers for the game where seeded by a function depending on
the global seed and the trial number. In the multithreaded code, the
seed function depends on the global seed and the trial number in the
current batch. That is the seed of the first game in the _new_ batch,
will match that of the first game of the _old_ batch...

The problem is the following:

InitRNGSeed(prc->nSeed + (i << 8), prc->rngRollout, rngctxRollout);

where "i" used to be the trial number, but "i" now counts from zero
each time you stop and restart a rollout. The old code probably didn't
do the right thing either, for example when some candidates were
stopped early because of statistics and the started again.

The natural thing would be to replace "i" with altGamesCount[alt], but
I'm not quite sure what the threading implications of this would be.
What do you think Jon?

Christian.


_______________________________________________
Bug-gnubg mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-gnubg

Reply via email to