> 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/

Reply via email to