> Uct also has the advantage that it is much easier to use with multiple > CPUs. I know parallel alpha-beta exists, but my evaluation function is > not designed to be thread safe. If I put a big lock around it, there will > be almost no SMP scaling, since almost all the time is in the evaluation, > not in the search.
You can solve this by using multiprocessing (with shared memory) instead of multithreading. I did this for the first generations of my chessprogram that had the same sort of issues. There are almost no downsides, and some upsides on NUMA architectures. This doesn't really have anything to do with UCT. If your playouts would not be threadsafe you would have the same problem. I guess you wrote the playout code more recently than the evaluation, after you learned what threadsafe is and why it's good to have :-) -- GCP _______________________________________________ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/