David, > I understand how you update the counters lock-free, but > surely you must have a lock to protect adding a new node to the tree?
We have a single atomic test-and-set instruction to expand a node (add children) only once. It is not a blocking mutex. If a thread finds that the node is not yet expanded but some other thread is already allocating new children, it simply goes on, starting a playout at this point. > Do this impact scaling at some point? Maybe above 24 cores, but we couldn't measure this. Pachi scales perfectly up to 24 cores in single-machine mode. See the reference given by Pasky earlier in this thread: Fig. 9 of http://pasky.or.cz/go/pachi-tr.pdf Jean-loup
_______________________________________________ Computer-go mailing list [email protected] http://dvandva.org/cgi-bin/mailman/listinfo/computer-go
