Re: some general UCT notes.
Petr Baudis <pasky <at> ucw.cz>
2014-08-31 07:31:17 GMT
Thanks for sharing your observations.
On Sat, Aug 30, 2014 at 01:10:10PM -0700, Dave Dyer wrote:
> I found simple threading had a pretty sharp knee in performance at 4
> threads. In other words, 2 3 and 4 threads improved the overall amount
> of work done more or less linearly to 3.5x, speed improvements fell off
> rapidly for more threads.
Do you exclusively lock the tree when working with it, or does Java
allow some tricks to use the traditional lockless tree updates?
> I've also been comparing "blitz" play which creates a copy of the
> board at top level, and starts each descent with a copy of the board;
> compared with "unwinding" play where every move is explicitly unwound.
> Of course, the complexity of the unwinding varies a lot from game to
> game, but I found that "unwind" is always faster, an average 1/3 faster
> across several games. So if the complexity of unwinding your data
> structures is not too great, it's worthwhile.
Couldn't it be the case that your "board" object is just too heavy
weight? Don't any surprising things hide in the constructors etc.?
What actually takes so much time during the copy operation?
(Also, in general - what is the relation between number of moves you
make during a playout, number of different board points you visit by the
moves, and size of the board? If the last is much bigger than the
former two, it may make sense.)
Life is short, the craft long, opportunity fleeting, experiment
treacherous, judgment difficult. -- Hippocrates