[computer-go] Speed of generating random playouts

Petr Baudis pasky at ucw.cz
Mon Nov 12 07:58:49 PST 2007


  Hi,

  I started experimenting with implementing own Go robot and first I
created a generic infrastructure that various engines should be able to
plug into. Currently, a random player and a straightforward MonteCarlo
bot (plays as zzgobot on KGS now) engines are implemented; the sources
are at

	http://rover.dkm.cz/w/zzgo.git

in case anyone is interested. I chose to implement it in C so that I can
maximize raw computing speed, but the results have been rather
disappointing for me in this area.

  I'm now wondering about whether I should keep bothering about
optimizing the board library further or if what I have is good enough by
general standards already and I should instead start making the MC
playouts smarter (*NOW* I understand why you want to add domain-specific
knowledge like giving handling atari a preference ;-), implement UCT,
...

  Thus, I would like to ask, how fast can your engines play out random
games (and on what hardware)? My random playouts are limited only with
rule and do-not-fill-1pt-eye constraints.

  Currently, on my meager AMD 1.6 GHz (single core) my engine is able to
play 2500 games per second on 9x9 - with 1000 games per move candidate,
that is about 30s per move in the opening; but it seems that most people
prefer 10000 instead of 1000. Is the difference all that visible?

  Based on what I have heard, this is not good at all, but I'm running
out of ideas on what to optimize, thus I'm asking so that I know what
should I set my goal to be here.

  Thank you,

-- 
				Petr "Pasky" Baudis
We don't know who it was that discovered water, but we're pretty sure
that it wasn't a fish.		-- Marshall McLuhan


More information about the computer-go mailing list