I've recently been upgrading my family of UCT robots for non-go games,
but thought I'd report a few things for "general knowledge and expectations".
This UCT system is written in java, and runs on standard PC hardware with
multiple processor cores.

The system typically uses a fairly small tree and a relatively long random
playout tail, and is not especially optimized for speed. Only the tree-descent
and backtrack-update phases have thread synchronization issues.

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.

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.

_______________________________________________
Computer-go mailing list
[email protected]
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go

Reply via email to