[computer-go] Pay-as-you-go cluster?
Chrilly
c.donninger at wavenet.at
Mon Oct 2 06:04:44 PDT 2006
>
> So, basically, the master node feeds the simulation nodes with positions
> from which to run simulations, and collects the results later. This avoids
> the burden of having to share the hash table over the network, at the
> price of a delay between the time when a simulation is asked and when its
> result is known.
In Hydra I use the very primitive idea of replication of Hashtables. The 64
processor cluster has 32 Dual nodes. There are 32 replicated hashtables. Its
not an exact replication. First of all the entries of a given hashtable are
only distributed in buckets of at least 15 entries. This has to do with MPI.
The time and overhead for sending 1 or 15 entries is almost the same.
Sending buckets reduces the message passing overhead almost by the size of
the bucket. This bucket concept has the effect, that an entry in the "home"
table is only distributed after some delay. But in Alpha-Beta there is no
need for exact replication. Its sufficient to have a high hit rate. Secondly
the entries must have a minimum depth (currently 4 Plies). Only the more
valuable entries are replicated.
This very primitive method works in Hydra much better than a complicated
distributed hash-concept used in other massive parallel chess programms
(e.g. Zugzwang). The Hydra search is in comparison to the message latency
much too fast. For subtrees of depth < 7 the remote answer would practically
always arrive after the search has been already done locally. Ulf Lorenz,
the parallel expert of the Hydra-team, intially claimed that it works only
for 8 processors (4 tables). It works still for 64 satiesfactory. But 64
seems to be an upper bound.
The main reason I have choosen this method is: It is very simple to
programm. An asynchron mechanism is always nasty. One has to relate the
incoming answer to an event/position some time before.
There is no guarantee that when one sends request A to processor X and then
request B to processor Y, that the answer for A arrives before the answer to
B. The result can also be already obsolete.
Doing a hash-bucket broadcast and entering the bucket at the destination
into the hashtable is in contrast trivial.
Chrilly
More information about the computer-go
mailing list