> MoGo's parallelization has been published, but with moderate results because
> at that time we were only using ethernet. The
> same algorithm with good networks provide good results in 9x9 and very
> good results in 19x19. The trick is just that sharing only nodes of the tree
> with at least 5% of the total number of simulations, say 20 times
> per second, is enough for a nice speed-up. This is not possible with
> ethernet, but it is possible with myrinet, infiniband, or things like taht.

Interesting. It's fairly similar to what I was envisioning, but relies
much more on the network. Mine was oriented more towards a distributed
cluster, connected over the internet. Given this information, my
approach is most likely useless, at least on a setup like yours. I'll
tell you sort of what I was thinking about though:

Each node in the network communicates with just a few others in the
network. These relationships are arranged hierarchically, but they can
adjust dynamically. Each node has a parent and some siblings. Each
node sets its own root node somewhere in the tree below the root of
its parent (in most cases one move after). The parent and the children
communicate in the following way: every X nodes, the parent sends the
move list of its root with the number of playouts, the number of wins,
and the number of children searching below each. The children send
back which move they choose to search (based both on UCT or whatever
tree search algorithm you use, and what the other children are doing)
and the results along with a PV. Sometimes children will dissociate
with a parent and try to find a better place in the tree to search.
The strength of this approach is a self-regulating tree of nodes that
will automatically find the most lucrative places to search without
needing to communicate with a master server. The tree of nodes will
end up looking somewhat like a UCT tree.

Add in the possibility of the network regulating its connections as
well based on lag time, and it gets pretty complicated. It might be
the only viable approach when running on a cluster though... What do
you think?

> With 32 nodes, you get
> 95% winning rate against the one-node baseline, and this can be implemented
> using MPI within just a few lines (recursive sharing of the nodes in the
> tree). The reference (conference icinco2008)
> is on my web page (http://www.lri.fr/~teytaud/cv/cv.html), but the results
> in the paper are disappointing
> as the results on this paper were with ethernet only. We'll publish
> the new speed-up curves soon (preliminary results below). In 9x9, it's far
> less impressive, unfortunately; but perhaps improvements are possible.
> Note that these results are with very good networks, but better hardware
> exists... if you have plenty of money :-)

And 64 quad cores are cheap? ;)

Seriously though, thanks for the information. I guess the paper is not
available on the web anywhere? I think I understand your basic idea
pretty well though.

One interesting trend that I see is that the uncertainty increases for
19x19 when the matches get closer, while that doesn't happen in 9x9.
Maybe 9x9 is just shallow enough that the matches are more decisive.
Or is it just based on how many games were used to get this result?
_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Reply via email to