David--

I think the seed issue may be a nonissue for another reason.  In each
sim, the state is the initial board, bag, and racks--and the seed--the
difference across sims is the order in which tiles are drawn from the
bag, right?  So the initial seed is crucial to the outcome of each
sim--if the order of tiles were the same, you would get 10,000
identical results.  The reason this is a nonissue for Quackly is that
the randomization of order of tiles can be done once for all N sims
and then passed to each sim in turn. So you know exactly how many
random numbers to draw for each sim. This effectively means you can
also know the seed at the start of every sim, which I believe is the
precondition for getting all the randomness you can out of your PRNG
in a large-grain parallelized problem.  I am working on another
problem, which is to run a simulation in different processes (possibly
on different computers) where the number of draws each sim will need
to make is not easily computable so the seed sequence is hard to
prespecify.  The analog in Quackle would be if each of the sim players
randomized across choices, with an unknown (a priori) number of plays
to make before the end of the game (i.e. the randomness is not just in
the tile order).

Does that sound right?

On the CPU limits, I am sitting in an airport using an Intel T9300
chip to check email--I don't think you should design a speed
improvement for a older-generation chip.


On Sat, Aug 16, 2008 at 12:10 PM, David Jones <[EMAIL PROTECTED]> wrote:
> Multicore should not be too much of a problem because sims parallelize well.
>
> The random number generator (RNG) is a non-issue. If you want to do
> 10,000 iterations then you can do 2500 iterations on each core of a
> quad-core processor. No "live" data need be shared among the threads, as
> the only shared state is the initial board, bag and racks, which is
> read-only. Each thread keeps a local copy of everything it needs. Each
> RNG is independently seeded.
>
> The only point I'd make is: if Quackle uses a GADDAG normally, then we
> might want to consider using a DAWG instead. A B3 stepping
> Phenom/Barcelona quad-core processor has 512KB of L2 cache per core. A
> DAWG just barely fits into that. A GADDAG won't fit, and the GADDAG
> won't even fully fit into the 2MB L3 cache. Other processors will have
> similar limitations, but a quad-core Opteron is about the strongest
> thing we can expect to see on a home user's desk.
>
> It would be interesting to benchmark various processors on Scrabble
> sims. The Phenom doesn't scale very well in press reviews compared to
> the 3.2GHz Athlon64x2.
>

Reply via email to