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

Reply via email to