Happy new year to everyone! I know a while ago there was a branch in cvs looking at multiple evaluation threads, I'm not sure what happened to that and have written some (relatively) simple code to multi-thread AnalyzeGame().
It seems to work ok, with a simple test taking 36secs rather than 61secs with the old code (on a dual core laptop). There are a few small things to finish off, but the one thing I've currently not done is the Take/Drop to Double link in AnalyseMove(). Basically the code remembers some evaluation info from a Double move record and uses this on a subsequent Take/Drop move record. I commented this code out (as obviously the Take/Drop could be done at the same time as the Double) and couldn't see what wasn't happening. Does anyone have more of an idea of what this code does, if it's important and can't be removed I'll have to pass in the Double move record to AnalyseMove and make sure that both move records are done together. Assuming it all works it should be relatively easy to use the same code in multiple evaluations/rollouts (although I've not looked or thought about this yet). Are there any other areas that might be worth multi-threading? Jon
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Bug-gnubg mailing list [email protected] http://lists.gnu.org/mailman/listinfo/bug-gnubg
