[Pachi] BOINC instance of Pachi
pasky at ucw.cz
Tue Jun 5 10:46:56 CEST 2012
I had to google out what BOINC means. :-) I have thought about
a Seti at HOME-like model before, but...
On Tue, Jun 05, 2012 at 08:23:46AM +0100, Christopher Schmidt wrote:
> What are the main obstacles to running Pachi in a collaborative BOINC project? At least I would certainly contribute the resources of my computer, if such a project existed. I want to see a "mini-supercomputer" instance of pachi on KGS and if my computer was a part of it, it would be great. I'm sure that there are more like-minded people here and on KGS.
> (Another idea is that a BOINC project could contribute additional computational resources to pachi instead of being the "core system" for pachi. This means that pachi itself would run on one "core system" or a "cluster of core systems" of the developer, like it does now. And if additional computational resources are available through BOINC, computational tasks ("workunits") could be outsourced to these additional resources.)
Using computational capacity like this sounds great at first,
unfortunately, it is well suited to parallelized tasks which can
be actually separated to independent workunits. To much despair
of us all, noone knows how to do that with Monte Carlo Tree Search;
the only efficient models of parallelization are interdependent
threads that share memory (the single tree data structure).
In case of image processing or protein folding, the workunits work
on totally independent data and produce independent result samples,
but in case of MCTS, they all need to work on a single tree in order
to be efficient.
That has serious implications, mainly that it is difficult
to make MCTS efficiently scale to multiple machines with non-shared
memory (i.e. the usual cluster setups). There is some improvement,
but only up to certain (fairly low) number of machines and you need
quite fast interconnect between the machines in order to keep at least
part of the tree synchronized as much as possible.
This is the obstacle I see with the BOINC setup - it will likely
consist of more than a few machines that are not so strong, therefore
scaling will be quite limited, if any at all due to high latency
of communication between the machines scattered around the work.
That said, I should emphasize that "noone knows how to do that with
MCTS", not that "it is not possible to do that with MCTS". If you or
anyone has ideas they want to try regarding BOINC parallelization,
you will be welcome to experiment! The current distributed Pachi code
is part of the main tree so it shouldn't require much code changes.
Petr "Pasky" Baudis
Smart data structures and dumb code works a lot better
than the other way around. -- Eric S. Raymond
More information about the Pachi