gnugo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [gnugo-devel] Making GNU Go take advantage of multiple processors.


From: Gunnar Farnebäck
Subject: Re: [gnugo-devel] Making GNU Go take advantage of multiple processors.
Date: Tue, 23 Oct 2007 19:00:09 +0200
User-agent: Mozilla-Thunderbird 2.0.0.6 (X11/20071008)

Dmitry Denisenko wrote:
I'm a graduate student taking a course in parallel computer architecture and programming and I'm looking for a program to parallelize. I noticed that making GNU Go thread-safe is on your wish list. Have there been previous attempts at making it parallel?

Not quite, but in that direction. There's an old branch to allow working with multiple boards at once, which would be a step towards parallelization.

Are there any obvious reasons why it might be very hard (e.g. very large
> number of static variables in the program) or nobody just had time to do it?

Yes, there are lots of global and static variables, reading caches that should be shared between threads somehow, and of course the fact that there is a single global board state. Moreover it's not at all clear what tasks should be parallelized and how.

However, there's a strong trend towards using Monte-Carlo simulations in computer go, which is a technique where parallelization is reasonably straightforward and clearly beneficial. This has not been included in GNU Go yet, but you can get an idea how it may look from http://trac.gnugo.org/gnugo/ticket/150

There a different (simpler) board representation is used, which is designed from the start as a self-contained struct and all functions are intended to be thread-safe. Parallelization should probably be done with a shared UCT tree and a number of working threads to play out simulations from the leaves of the tree.

/Gunnar




reply via email to

[Prev in Thread] Current Thread [Next in Thread]