Evolution of a Go program

About the development of Moyo Go Studio, software to (help) play the Oriental game of Go. Go is a two-player zero-sum game of perfect information. It is considered much harder than Chess. Currently, in spite of enormous effort expended, no computer program plays it above the level of a beginner.

Friday, March 17, 2006

Outsearching Kombilo

Kombilo takes 5 sec. to search for this pattern in 42,000 games, MoyoGo only 3 sec. but this is because MoyoGo uses multithreading and Kombilo doesn't, and my machine has 4 CPU cores. Chapeau for Kombilo, although I have only worked for a few days on MoyoGo's pattern search, compared to years of tweaking (presumably) on Kombilo. And MoyoGo's pattern search scales almost linearly with the number of CPU cores, which means that in six, seven years, if Kombilo hasn't been made multithreaded, it will have "died out" because machines will have 16, 32 or 64 CPU cores and people will expect searches to be near-instantaneous on half a million Go games.

Don't think: "I will never have a multicore PC". In two years or less it will be impossible to buy a single-core CPU! Intels' planned "Hapertown" processor, scheduled for 2008, will have eight cores. If you just bought a new PC, your next PC will likely have at least 4 cores and your copy of MoyoGo will search Go patterns faster than anything in existence, if the current status quo in Go-software land continues.

MoyoGo is at the forefront of the multi-core revolution. I have invested 11,000 USD in a quad-core machine half a year ago, to be ready now for those customers with dual-core machines (I have a few). Industry analysts have lamented the lack of multithreaded game software. This Go Software application uses multithreading on every von Neumann bottleneck, to safeguard your investment and keep up with Moore's Law. (Moore's Law is still valid, more transistors on the same die area but not with rapidly increasing clockspeeds, so software will have to adapt or face extinction - Darwin's theory was not "survival of the fittest" but "survival of those who adapt fastest").