There is a big difference here: Ellis's program can only do light
playouts. He doesn't have MCTS or patterns. That is parallelized
extremely simply by just giving each thread an internal board state,
doing a playout from that, resetting the board state to the original,
doing a playout etc. There are no bottlenecks there, and that shouldn't
get any increase in performance from HT as far as I know(also see the
first sentence of Schmicker's comment). On the other hand, your programs
all have MCTS and patterns(with emphasis being on patterns) and they
both need constant memory reads. Thanks to that it's not a huge surprise
that HT works better. Still, that doesn't change the fact that I was a
bit off. I never actually expected that there was so much memory reading
that it would actually make HT work. Guess I should implement patterns
and see if I get similar results.
Regards,
Mikko Aarnos
PS. Of course, all this rests on the assumption that you don't do your
playouts exactly like Ellis, and if you do I am really, REALLY surprised
with the performance of HT.
PPS. And on the assumption that the 40%-50% performance increase was
from going from 4 threads to 8 threads with HT on all the time, not from
going from 4 threads with no HT to 8 threads with HT. Here as well, if
the latter is true I am again honestly surprised.
_______________________________________________
Computer-go mailing list
[email protected]
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go