rbarreira wrote:
Why is it only true without pruning?
Because the quoted numbers are only equal to the effective branching factor for pure minimax. Even just alpha-beta makes them (approximately) the square root. For a strong chessprogram, the effective factor is 2, not 35. For most strong go programs, it's not going to be very different, although the best-first formulation of the search might make a definition harder.
Even with pruning, having more moves to distribute among CPUs can't hurt, and probably helps. In chess, if you're at an ALL node and you have a 100-core CPU, you don't have enough moves for all the CPUs. In Go you would.
Again, only if you don't prune anything and want to search all those moves at the same moment in time. Which is simply not a good idea for building a strong program, and not how any strong Go program works.
(And no decent parallel chess or go problems is affected by the situation you describe anyway)
In any case, the Monte Carlo part can be parallelized very easily,
Easily, yes. But is it any good? Let's check a recent paper: Chaslot et al. (2008), using leaf parallelization (parallelizing the Monte Carlo part):
- raw speedup of 16 for 16 threads (sounds good)
- strength speedup of 2.4 for 16 threads (oops!!)
which makes me wonder how you were so quick to dismiss the value of more cores for Go.
I'm not saying many cores are not valuable for Go. I'm saying they're exactly as valuable as for a chess searcher, and that it's a completely wrong illusion to think that Go is somehow fundamentally easier than chess for that.