Re: [computer-go] Lockless hash table and other parallel search ideas

2008-09-10 Thread Don Dailey
The rules are exactly the same for 9x9 as for 19x19.  The boardsize is
different and that changes the game some.

I would suggest that if a top go player plays a game of chess
immediately after first learning the rules,   he would lose very badly
to even mediocre players or even advanced beginners.   

I really doubt this would be the case with 9x9 go.  I don't think you
can really make a strong argument that 9x9 isn't go or that it's not the
same game.You CAN argue that the characteristics of the game are
different and different aspects of the game are emphasized.  

Some really strong players may not be specialists in 9x9 and may lose to
players who specialize in 9x9 but are otherwise a few stones weaker at
19x19, but that's not remarkable.   In chess you can also be weakened
significantly and be thrown off your game by a surprise opening - or
we could imagine a game where your opening is decided for you and it
would make you very uncomfortable.

My guess (and it's only a guess) is that strong players playing on the
9x9 board are simply very uncomfortable but probably do not play as weak
as they imagine.In chess I heard that someone once did a study to
find out if playing speed chess weakened the performance of some players
more than others and despite the fact that many players imagine that it
does, it turned out that there was a remarkable correlation, although no
doubt some players who specialize at different time controls would have
an edge.

- Don

 

On Wed, 2008-09-10 at 11:27 +0900, Hideki Kato wrote:
 Christoph Birk: [EMAIL PROTECTED]:
 On Tue, 9 Sep 2008, Olivier Teytaud wrote:
  testbed for
  parallelization because it's more difficult) and as real targets (as 
  there
  are players
  for both).
 
 Sorry, but there are (almost) no players for 9x9. To repeat
 D.Fotland's earlier comment: 9x9 is just for beginner's practice.
 It's not go.
 
 Other than the match CS vs. Kaori Aoba 4p, which Rémi reported 
 recently, there was a 9x9 match CS vs. Meien O 9p with no komi at 
 FIT2008.  CS (B) won by 3 points.
 
 I'd like to emphasize 9x9 is Go.
 
 Hideki
 
 Christoph
 
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/
 --
 [EMAIL PROTECTED] (Kato)
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Lockless hash table and other parallel search ideas

2008-09-10 Thread Hideki Kato
I'm not sure about the strength of professional players on 9x9 but
basically agree with Don.

Of course, there are no definition what Go is. So, I'd just like to
introduce some in Japan.

- Meien O 9p is radical in some sense.  He wrote in his book that Go
is already unified in the sense that baseball is unified. Say,
although the size of the ball, for example, is different in US
and Japan, people don't say threre are two baseballs or Japanese
baseball is not a baseball, at lease these days :-).  So, according to
his idea, 9x9 is, of course, Go.

#Oh, if you can read Japanese, please visit the site below titled
Kanpai, Monte-Carlo.
http://taisen.mycom.co.jp/taisen/contents/igo/meien/meien_30.htm
Kanpai here has two meanings, perfect loss and to toast.

- There had been a TV program of professional 9x9 Go for years (some
member of this list have the records of the games played in this
program).  Takemiya 9p and Yuki 9p were the strongest.

- A vert famous and one of the strongest 9p in Japan, Chikun Cho is
well known by his research about 9x9 Go.

So, I'm sure all professtonal Go players in Japan think 9x9 is Go.  

- There are threads for discussions and online 9x9 games (by
beginners, kyu and dan players) on the largest BBS in Japan.

- Finally, Mr. Okasaki, a researcher of the game of Go, sometime
argued 9x9 is not Go.  He sometime also argued computer's Go is not Go
:).

Hideki

Don Dailey: [EMAIL PROTECTED]:
The rules are exactly the same for 9x9 as for 19x19.  The boardsize is
different and that changes the game some.

I would suggest that if a top go player plays a game of chess
immediately after first learning the rules,   he would lose very badly
to even mediocre players or even advanced beginners.   

I really doubt this would be the case with 9x9 go.  I don't think you
can really make a strong argument that 9x9 isn't go or that it's not the
same game.You CAN argue that the characteristics of the game are
different and different aspects of the game are emphasized.  

Some really strong players may not be specialists in 9x9 and may lose to
players who specialize in 9x9 but are otherwise a few stones weaker at
19x19, but that's not remarkable.   In chess you can also be weakened
significantly and be thrown off your game by a surprise opening - or
we could imagine a game where your opening is decided for you and it
would make you very uncomfortable.

My guess (and it's only a guess) is that strong players playing on the
9x9 board are simply very uncomfortable but probably do not play as weak
as they imagine.In chess I heard that someone once did a study to
find out if playing speed chess weakened the performance of some players
more than others and despite the fact that many players imagine that it
does, it turned out that there was a remarkable correlation, although no
doubt some players who specialize at different time controls would have
an edge.

- Don

 

On Wed, 2008-09-10 at 11:27 +0900, Hideki Kato wrote:
 Christoph Birk: [EMAIL PROTECTED]:
 On Tue, 9 Sep 2008, Olivier Teytaud wrote:
  testbed for
  parallelization because it's more difficult) and as real targets (as 
  there
  are players
  for both).
 
 Sorry, but there are (almost) no players for 9x9. To repeat
 D.Fotland's earlier comment: 9x9 is just for beginner's practice.
 It's not go.
 
 Other than the match CS vs. Kaori Aoba 4p, which Rémi reported 
 recently, there was a 9x9 match CS vs. Meien O 9p with no komi at 
 FIT2008.  CS (B) won by 3 points.
 
 I'd like to emphasize 9x9 is Go.
 
 Hideki
 
 Christoph
 
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/
 --
 [EMAIL PROTECTED] (Kato)
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/
--
[EMAIL PROTECTED] (Kato)
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Lockless hash table and other parallel search ideas

2008-09-10 Thread terry mcintyre
It is true that a pro would probably do rather well against a moderate amateur 
at 9x9 go, but nonetheless, the pro has a great deal of knowledge which is 
specific to 19x19 go. Several authors have very recently mentioned that their 
programs have to be tuned to play well at 9x9 go; important parameters differ 
compared to 19x19. Many joseki for the 19x19 board involve subtle tradeoffs of 
territory versus influence. The value of influence depends on how close 
opposing stones are. On 9x9, everything is close. Giving one's opponent a large 
corner in exchange for great influence can be a winning strategy on a 19x19 
board; on 9x9 the same sequence of moves would probably lose badly.

9x9 go is an extremely tactical game; every play strongly affects the entire 
board. It might be the case that top programs can already beat pros at 9x9 go - 
especially if the program is free of bugs related to nakade, seki, and ko 
fights. A pro could certainly not give a two-stone handicap to a top program on 
a 9x9 board, assuming that the program knows how to make use of those handicap 
stones. 


 Terry McIntyre [EMAIL PROTECTED]


Go is very hard. The more I learn about it, the less I know. -Jie Li, 9 dan



- Original Message 
 From: Don Dailey [EMAIL PROTECTED]
 To: computer-go computer-go@computer-go.org
 Sent: Wednesday, September 10, 2008 5:12:57 AM
 Subject: Re: [computer-go] Lockless hash table and other parallel search ideas
 
 The rules are exactly the same for 9x9 as for 19x19.  The boardsize is
 different and that changes the game some.
 
 I would suggest that if a top go player plays a game of chess
 immediately after first learning the rules,   he would lose very badly
 to even mediocre players or even advanced beginners.  
 
 I really doubt this would be the case with 9x9 go.  I don't think you
 can really make a strong argument that 9x9 isn't go or that it's not the
 same game.You CAN argue that the characteristics of the game are
 different and different aspects of the game are emphasized.  
 
 Some really strong players may not be specialists in 9x9 and may lose to
 players who specialize in 9x9 but are otherwise a few stones weaker at
 19x19, but that's not remarkable.   In chess you can also be weakened
 significantly and be thrown off your game by a surprise opening - or
 we could imagine a game where your opening is decided for you and it
 would make you very uncomfortable.
 
 My guess (and it's only a guess) is that strong players playing on the
 9x9 board are simply very uncomfortable but probably do not play as weak
 as they imagine.In chess I heard that someone once did a study to
 find out if playing speed chess weakened the performance of some players
 more than others and despite the fact that many players imagine that it
 does, it turned out that there was a remarkable correlation, although no
 doubt some players who specialize at different time controls would have
 an edge.
 
 - Don
 
 
 
 On Wed, 2008-09-10 at 11:27 +0900, Hideki Kato wrote:
  Christoph Birk: :
  On Tue, 9 Sep 2008, Olivier Teytaud wrote:
   testbed for
   parallelization because it's more difficult) and as real targets (as 
 there
   are players
   for both).
  
  Sorry, but there are (almost) no players for 9x9. To repeat
  D.Fotland's earlier comment: 9x9 is just for beginner's practice.
  It's not go.
  
  Other than the match CS vs. Kaori Aoba 4p, which Rémi reported 
  recently, there was a 9x9 match CS vs. Meien O 9p with no komi at 
  FIT2008.  CS (B) won by 3 points.
  
  I'd like to emphasize 9x9 is Go.
  
  Hideki
  
  Christoph
  
  ___
  computer-go mailing list
  computer-go@computer-go.org
  http://www.computer-go.org/mailman/listinfo/computer-go/
  --
  [EMAIL PROTECTED] (Kato)
  ___
  computer-go mailing list
  computer-go@computer-go.org
  http://www.computer-go.org/mailman/listinfo/computer-go/
 
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/




___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Lockless hash table and other parallel search ideas

2008-09-10 Thread Olivier Teytaud


 - There had been a TV program of professional 9x9 Go for years (some
 member of this list have the records of the games played in this
 program).  Takemiya 9p and Yuki 9p were the strongest.


I'm afraid the answer is no, but:
are these records free and available somewhere ?

Thanks for your interesting informations around Go and 9x9 Go :-)
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] Lockless hash table and other parallel search ideas

2008-09-10 Thread Erik van der Werf
Maybe these are the same?

http://gobase.org/9x9/

Erik

On Wed, Sep 10, 2008 at 4:38 PM, Olivier Teytaud [EMAIL PROTECTED] wrote:

 - There had been a TV program of professional 9x9 Go for years (some
 member of this list have the records of the games played in this
 program).  Takemiya 9p and Yuki 9p were the strongest.

 I'm afraid the answer is no, but:
 are these records free and available somewhere ?

 Thanks for your interesting informations around Go and 9x9 Go :-)


 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Lockless hash table and other parallel search ideas

2008-09-10 Thread Vincent Diepeveen



On Sep 10, 2008, at 2:12 PM, Don Dailey wrote:


The rules are exactly the same for 9x9 as for 19x19.  The boardsize is
different and that changes the game some.

I would suggest that if a top go player plays a game of chess
immediately after first learning the rules,   he would lose very badly
to even mediocre players or even advanced beginners.



Usually i hesitate commenting just upon 1 statement out of an entire
story. Additionally you have the advantage of the native English skill;
kind of Obama type statement that you can still define an 'advanced  
beginner'

as being a titled player who doesn't make money with it.

But we must correct you here in case you no longer see yourself as a  
beginner

or as an advanced beginner.

Directly after learning the games of
chess, a strong go player will be able to win from you.

Strategically and tactically they're that much above your level that  
they will

completely annihilate you.

Regarding that there are big differences between 9x9 and 19x19 i agree.

9x9 is a very simple game compared to 19x19.
From computer algorithms viewpoint seen that hard forward pruning is  
tougher to
do there; explaining why the current random searching methods do so  
bad in 9x9 and a lot better
at 19x19, relatively spoken. In absolute sense the will fail at both  
games of course.


The only proof the current random searching methods give in go is  
that searching deeply in random manner
is better than searching short lines in super-dubious manner. IMHO  
this is logical.


The fact that there is zero fulltime salary prospects to get clever  
guys interested in putting in years of fulltime effort into 9x9,
is the reason why the programs play this still so weak, as just a  
single one of them would raise the game quality a lot.


It is of course a combination of evaluation and search.

What you typically see is that players with little domain knowldge in  
chess nor go,

are busy with it now, doing a brute force attempt.

Note that computer-go has one big advantage over computer-chess;  
because there is little sales possible to
achieve, there is little money at stake, that gives the advantage  
that the programmers at least communicate
with each other in a forum like this and at tournaments. In  
computerchess it is very difficult to find talkative persons.


The main progress that happens in computerchess is simply by  
debugging other persons code.
It goes that far that a Russian author has even simply automatically  
converted the program Rybka 1.0 back

from assembler into C code, it is called strelka.

This communicative skills problem is why progress in computerchess  
goes relative slow. Still many brilliant guys
get lured into it, because chess gets played in 105+ nations. You see  
clearly now that they do not do much effort
for it nowadays, as just like computer-go there is nearly no money to  
make with an engine (in contradiction to GUI).


In doing that, it is selfexplaining that those who have a parallel go- 
program,
still didn't figure out what computerchess already knew in the 80s,  
namely that
to run parallel you need to avoid central locking, and need to search  
with

a global hashtable (Feldmann, somewhere in the 80s)
and a decentralized form of doing the search. That sure involves
locking in case you want a good speedup, something Leiersonco with  
CILK did not
manage nor Feldmann, but that is all very well solvable with a big  
effort.


Yet those big guys who were busy with chess in the past years, who  
already knew back in the 80s a lot
about decentralizing the parallel search, in computer-go they seem  
absent.


Vincent



I really doubt this would be the case with 9x9 go.  I don't think you
can really make a strong argument that 9x9 isn't go or that it's  
not the

same game.You CAN argue that the characteristics of the game are
different and different aspects of the game are emphasized.

Some really strong players may not be specialists in 9x9 and may  
lose to

players who specialize in 9x9 but are otherwise a few stones weaker at
19x19, but that's not remarkable.   In chess you can also be weakened
significantly and be thrown off your game by a surprise opening - or
we could imagine a game where your opening is decided for you and it
would make you very uncomfortable.

My guess (and it's only a guess) is that strong players playing on the
9x9 board are simply very uncomfortable but probably do not play as  
weak

as they imagine.In chess I heard that someone once did a study to
find out if playing speed chess weakened the performance of some  
players
more than others and despite the fact that many players imagine  
that it
does, it turned out that there was a remarkable correlation,  
although no
doubt some players who specialize at different time controls would  
have

an edge.





- Don



On Wed, 2008-09-10 at 11:27 +0900, Hideki Kato wrote:
Christoph Birk: Pine.LNX. 
[EMAIL PROTECTED]:

On Tue, 9 Sep 2008, Olivier Teytaud 

Re: [computer-go] Lockless hash table and other parallel search ideas

2008-09-10 Thread Hideki Kato
Erik van der Werf: [EMAIL PROTECTED]:
Maybe these are the same?

http://gobase.org/9x9/

Yes but a part.  Unfortunatelly, whole records is temporary not 
available.  Following is the reason (and history) which I can remember 
now.

All records were published (but not sold) in a few booklets.  Dr. 
Saito and Mr. Okasaki made them computer readable ten or more years 
ago.  They are copyrighted by Yomiuri TV but Mr. Okasaki has a grant 
to distribute them for research purposes.  They had been distributed 
under his permission for years.

Last year, Mr. Okasaki studied them precisely and found so many errors 
that he asked me to stop distribution.  I have no idea when I will be 
able to restart.

Hideki

Erik

On Wed, Sep 10, 2008 at 4:38 PM, Olivier Teytaud [EMAIL PROTECTED] wrote:

 - There had been a TV program of professional 9x9 Go for years (some
 member of this list have the records of the games played in this
 program).  Takemiya 9p and Yuki 9p were the strongest.

 I'm afraid the answer is no, but:
 are these records free and available somewhere ?

 Thanks for your interesting informations around Go and 9x9 Go :-)


 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/
--
[EMAIL PROTECTED] (Kato)
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Lockless hash table and other parallel search ideas

2008-09-10 Thread Ian Osgood


On Sep 10, 2008, at 8:27 AM, Vincent Diepeveen wrote:



Note that computer-go has one big advantage over computer-chess;  
because there is little sales possible to
achieve, there is little money at stake, that gives the advantage  
that the programmers at least communicate
with each other in a forum like this and at tournaments. In  
computerchess it is very difficult to find talkative persons.


I'm not sure this statement is true. It has been estimated that the  
overall market for the amateur level Go programs has been around 5-10  
million dollars. I imagine that this market will only expand as the  
programs become stronger, China enters the software marketplace, and  
Go becomes more popular worldwide. What would you estimate the  
worldwide chess program market to be?


I agree that the Go community is refreshingly open about their  
techniques. Even commercial authors like Bruce Wilcox and David  
Fotland wrote extensively about their programs' internals. In chess,  
the authors have their trade secrets which they keep as long as they  
can make sales.


The one blight on the computer Go community was the North Korean KCC  
Igo plagiarism scandal.


Ian

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Lockless hash table and other parallel search ideas

2008-09-10 Thread Don Dailey
Hi Vincent,

What does this possibly have to do with me?   

 But we must correct you here in case you no longer see yourself as a  
 beginner
 or as an advanced beginner.
 
 Directly after learning the games of
 chess, a strong go player will be able to win from you.
 
 Strategically and tactically they're that much above your level that  
 they will
 completely annihilate you.

Ok, since you seem to be so interested ...

I don't currently play chess and haven't for over 20 years.  But I think
an excellent description of the way I used to play chess is mediocre
which means,  Of a middle quality; of but a moderate or low degree of
excellence

Middle quality is just about right.   I played tournament chess for
about 2 years.  The median tournament chess player at that time was
between 1500-1600 ELO I believe.   My PEAK rating was 1914 which is not
much more than median (I was still in the fat part of the Bell shaped
curve even if I was above average.)  And low degree of excellence fits
because plenty of players exist hundreds of ELO stronger than myself.  

I think I would be a very good candidate for this experiment, even
though the last thing on my mind was using myself as an example and I'm
flattered that you choose to pick on me.   

So if you can locate a very strong GO player who has never heard of
chess,  I would very happily give you a day to teach him the rules of
the game and to coach him on strategy.   I think I would easily win a 10
game match.   In fact, I believe a player significantly weaker than
myself would easily win a 10 game match.   

Please note that a player of my weak ability rarely produces good games.
I have rarely produced a game of chess I am proud of, my games being
laced with errors that even I can see on further analysis.  Chess is all
about errors until you get to the really high levels, and then it's
still all about errors.   You never see chess players showing off their
lost games. 

However it makes me laugh to think that you believe someone who has
never even learned the rules of the game would play close to USCF master
level immediately after learning the rules.   You said that they would
be able to completely annihilate me.   

What does it mean to completely annihilate someone?  If you assume that
means they will win 90% of the time,  this implies they would have to be
at least USCF master strength.   

There is no point even talking about this,  unless you can actually
arrange this experiment.   Your statement is so ridiculous that I wonder
if you have lost your mind.

Please don't come back at me with another rant - produce this player who
can immediately beat me even though he doesn't even know the rules. 

- Don






On Wed, 2008-09-10 at 17:27 +0200, Vincent Diepeveen wrote:
 
 On Sep 10, 2008, at 2:12 PM, Don Dailey wrote:
 
  The rules are exactly the same for 9x9 as for 19x19.  The boardsize is
  different and that changes the game some.
 
  I would suggest that if a top go player plays a game of chess
  immediately after first learning the rules,   he would lose very badly
  to even mediocre players or even advanced beginners.
 
 
 Usually i hesitate commenting just upon 1 statement out of an entire
 story. Additionally you have the advantage of the native English skill;
 kind of Obama type statement that you can still define an 'advanced  
 beginner'
 as being a titled player who doesn't make money with it.
 
 But we must correct you here in case you no longer see yourself as a  
 beginner
 or as an advanced beginner.
 
 Directly after learning the games of
 chess, a strong go player will be able to win from you.
 
 Strategically and tactically they're that much above your level that  
 they will
 completely annihilate you.
 
 Regarding that there are big differences between 9x9 and 19x19 i agree.
 
 9x9 is a very simple game compared to 19x19.
  From computer algorithms viewpoint seen that hard forward pruning is  
 tougher to
 do there; explaining why the current random searching methods do so  
 bad in 9x9 and a lot better
 at 19x19, relatively spoken. In absolute sense the will fail at both  
 games of course.
 
 The only proof the current random searching methods give in go is  
 that searching deeply in random manner
 is better than searching short lines in super-dubious manner. IMHO  
 this is logical.
 
 The fact that there is zero fulltime salary prospects to get clever  
 guys interested in putting in years of fulltime effort into 9x9,
 is the reason why the programs play this still so weak, as just a  
 single one of them would raise the game quality a lot.
 
 It is of course a combination of evaluation and search.
 
 What you typically see is that players with little domain knowldge in  
 chess nor go,
 are busy with it now, doing a brute force attempt.
 
 Note that computer-go has one big advantage over computer-chess;  
 because there is little sales possible to
 achieve, there is little money at stake, that gives the advantage  
 that the 

Re: [computer-go] Lockless hash table and other parallel search ideas

2008-09-09 Thread Olivier Teytaud


 Yes.  I use Sylvain's fpu and decrease it a little before starting a
 simulation, say, fpu *= 0.99.  This is very simple and fast.


Ok. Perhaps I'm wrong (I might misunderstand your solution and I might be
wrong
whenever I've understood :-) ); but
- I think that this does not avoid redundancies in the tree, if I understand
well.
- also, even in a final node in a tree, it does not avoid redundancies for
moves
  which have already been simulated.
- finally, in a final node in a tree and for moves which have not yet been
simulated,
  it only avoid redundancies if 0.99 is sufficiently small.

Avoiding redundancies is very important in SMP parallelization. The limited
speed-up
of MPI parallelization in 9x9  is also probably due to redundancies, but for
that we have no
good solution - whereas in 19x19 (or even 13x13), the speed-up of the MPI
parallelization is great (both
in our results and other published papers), in 9x9 it is limited.

Best regards,
Olivier
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] Lockless hash table and other parallel search ideas

2008-09-09 Thread Hideki Kato
Olivier Teytaud: [EMAIL PROTECTED]:


 Yes.  I use Sylvain's fpu and decrease it a little before starting a
 simulation, say, fpu *= 0.99.  This is very simple and fast.


Ok. Perhaps I'm wrong (I might misunderstand your solution and I might be
wrong
whenever I've understood :-) ); but
- I think that this does not avoid redundancies in the tree, if I understand
well.
- also, even in a final node in a tree, it does not avoid redundancies for
moves
  which have already been simulated.
- finally, in a final node in a tree and for moves which have not yet been
simulated,
  it only avoid redundancies if 0.99 is sufficiently small.

Perhaps yes.  I use _no_ pre-knowledge yet, ie, the initial value of 
fpu is a constant, 1.10.

Avoiding redundancies is very important in SMP parallelization. The limited
speed-up
of MPI parallelization in 9x9  is also probably due to redundancies, but for
that we have no
good solution - whereas in 19x19 (or even 13x13), the speed-up of the MPI
parallelization is great (both
in our results and other published papers), in 9x9 it is limited.

Although I'm parallelizing in not SMP systems but a cluster of loosely 
coupled (small) computers connected through moderate speed networks 
using broadcasting positions, this may not change the vlaue of 
avoiding redundancies.  I'll study more when implementing 
pre-knowledge or some.  Thanks.

Best regards,
Hideki

Best regards,
Olivier
 inline file
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/
--
[EMAIL PROTECTED] (Kato)
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Lockless hash table and other parallel search ideas

2008-09-09 Thread Olivier Teytaud


 Although I'm parallelizing in not SMP systems but a cluster of loosely
 coupled (small) computers connected through moderate speed networks
 using broadcasting positions, this may not change the vlaue of
 avoiding redundancies.  I'll study more when implementing
 pre-knowledge or some.  Thanks.



Do you have the winning rate of your best parallel algorithm against the
sequential version in 9x9 Go
in such a setting without shared memory ? We stay below 80% for this form of
parallelization (but this
speed-up can be cumulated with SMP speed-up), whenever we use fast networks
(infiniband).

In 19x19, it's much better, but the MPI parallelization of  9x9 Go is
challenging.

Best regards,
Olivier
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] Lockless hash table and other parallel search ideas

2008-09-09 Thread Hideki Kato

Olivier Teytaud: [EMAIL PROTECTED]:


 Although I'm parallelizing in not SMP systems but a cluster of loosely
 coupled (small) computers connected through moderate speed networks
 using broadcasting positions, this may not change the vlaue of
 avoiding redundancies.  I'll study more when implementing
 pre-knowledge or some.  Thanks.



Do you have the winning rate of your best parallel algorithm against the
sequential version in 9x9 Go
in such a setting without shared memory ? We stay below 80% for this form of
parallelization (but this
speed-up can be cumulated with SMP speed-up), whenever we use fast networks
(infiniband).

Not yet.  I have many benchmarks now but only against GNU Go level _0_ 
on 9x9 and 13x13.  The best WR on 9x9 is 72% using four quad-core PCs 
on a GbE private LAN with 0.16 second per move (less than 10 seconds 
per game) but the speed-up (strength-speedup by G. Chaslot) against 1 
PC is just 1.6.  This may be improved in longer time settings but I'm 
not sure.
# I can use only 4 x 4 cores in hand now so that it's very hard to 
have benchmarks on 19x19.

In 19x19, it's much better, but the MPI parallelization of  9x9 Go is
challenging.

Strongly agree.  Even in 13x13, it's much better.

Best,
Hideki

Best regards,
Olivier
 inline file
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/
--
[EMAIL PROTECTED] (Kato)
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Lockless hash table and other parallel search ideas

2008-09-09 Thread Christoph Birk

On Tue, 9 Sep 2008, Olivier Teytaud wrote:

In 19x19, it's much better, but the MPI parallelization of  9x9 Go is
challenging.


The bright side here is that 9x9 is not really important but just
a test bed. If it works for 19x19, that's good.

Christoph

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Lockless hash table and other parallel search ideas

2008-09-09 Thread Olivier Teytaud


 The bright side here is that 9x9 is not really important but just
 a test bed. If it works for 19x19, that's good.


People moderately intested in Go could also claim that both 9x9 and 19x19
are
just testbeds for power plant management :-)

In my humble opinion, both are intesting, both as testbeds (9x9 is a good
testbed for
parallelization because it's more difficult) and as real targets (as there
are players
for both).

But, I guess it's a controversial political issue :-)
Olivier
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] Lockless hash table and other parallel search ideas

2008-09-09 Thread Christoph Birk

On Tue, 9 Sep 2008, Olivier Teytaud wrote:

testbed for
parallelization because it's more difficult) and as real targets (as there
are players
for both).


Sorry, but there are (almost) no players for 9x9. To repeat
D.Fotland's earlier comment: 9x9 is just for beginner's practice.
It's not go.

Christoph

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Lockless hash table and other parallel search ideas

2008-09-09 Thread Jason House
On Sep 8, 2008, at 11:45 AM, Olivier Teytaud  
[EMAIL PROTECTED] wrote:




By my recent experiments, 8~9 * (threads - 1) ELO is lost.  This
matches my earlier result well.

Do you have tricks for avoiding redundancies between simulations ?

I suggest simple tricks like do not go to node X if there is a  
thread currently in node X
(simply by setting the score of the moves leading to node X to zero  
until you get out of the node).


Are there any tricks for adding in transposed search results without  
locking? I currently re-scan children to pick up the free search  
results.

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Lockless hash table and other parallel search ideas

2008-09-09 Thread Hideki Kato
Christoph Birk: [EMAIL PROTECTED]:
On Tue, 9 Sep 2008, Olivier Teytaud wrote:
 testbed for
 parallelization because it's more difficult) and as real targets (as there
 are players
 for both).

Sorry, but there are (almost) no players for 9x9. To repeat
D.Fotland's earlier comment: 9x9 is just for beginner's practice.
It's not go.

Other than the match CS vs. Kaori Aoba 4p, which Rémi reported
recently, there was a 9x9 match CS vs. Meien O 9p with no komi at
FIT2008.  CS (B) won by 3 points.

I'd like to emphasize 9x9 is Go.

Hideki

Christoph

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/
--
[EMAIL PROTECTED] (Kato)
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Lockless hash table and other parallel search ideas

2008-09-08 Thread Olivier Teytaud


 By my recent experiments, 8~9 * (threads - 1) ELO is lost.  This
 matches my earlier result well.


Do you have tricks for avoiding redundancies between simulations ?

I suggest simple tricks like do not go to node X if there is a thread
currently in node X
(simply by setting the score of the moves leading to node X to zero until
you get out of the node).
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] Lockless hash table and other parallel search ideas

2008-09-08 Thread Álvaro Begué
On Mon, Sep 8, 2008 at 11:45 AM, Olivier Teytaud [EMAIL PROTECTED] wrote:

 By my recent experiments, 8~9 * (threads - 1) ELO is lost.  This
 matches my earlier result well.


 Do you have tricks for avoiding redundancies between simulations ?
 I suggest simple tricks like do not go to node X if there is a thread
 currently in node X
 (simply by setting the score of the moves leading to node X to zero until
 you get out of the node).

That doesn't sound like a good idea to me, since it would force most
threads out of the interesting moves at the root.

If you are using UCT, you can simply increment the number of plays
when a thread starts exploring this branch; the number of victories
will be incremented later, if it needs to be incremented. This way
other threads will be discouraged from taking this move, but not
disproportionally.

By the way, are people aware that you can do atomic increments with
one line of assembly code?

Álvaro.
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Lockless hash table and other parallel search ideas

2008-09-08 Thread Hideki Kato

Olivier Teytaud: [EMAIL PROTECTED]:


 By my recent experiments, 8~9 * (threads - 1) ELO is lost.  This
 matches my earlier result well.


Do you have tricks for avoiding redundancies between simulations ?

Yes.  I use Sylvain's fpu and decrease it a little before starting a 
simulation, say, fpu *= 0.99.  This is very simple and fast.

For detailed info, you can read my implementation of PMCTS 
(parallel MCTS) submitted to GPW 2007.  Though it's written in 
Japanese, pseudo code are in English and abstract and captions are 
written in both.
http://www.geocities.jp/hideki_katoh/publications/gpw2007/gpw07-private.pdf
If you have any trouble on downloading or reading, please let me 
know.

Hideki

I suggest simple tricks like do not go to node X if there is a thread
currently in node X
(simply by setting the score of the moves leading to node X to zero until
you get out of the node).
 inline file
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/
--
[EMAIL PROTECTED] (Kato)
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Lockless hash table and other parallel search ideas

2008-09-06 Thread Hideki Kato
Rémi Coulom: [EMAIL PROTECTED]:
snip
I'll run tests to try to figure out how much strength is lost by 
parallelization (ie, what is the winning rate of 10,000 sequential 
playouts vs 1,000 playouts over 10 processors). Hideki ran similar tests 
against GNU Go, and found 25 Elo loss with 4 CPUs. So 54,193 playouts 
per second over 16 CPUs will certainly not perform as well as 54,193 
sequential playouts.

By my recent experiments, 8~9 * (threads - 1) ELO is lost.  This
matches my earlier result well.

Hideki
--
[EMAIL PROTECTED] (Kato)
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Lockless hash table and other parallel search ideas

2008-03-23 Thread Rémi Coulom

Olivier Teytaud wrote:

Hi,

I have got a lockless hash table to work, and I thought I'd share the 
results.

[...]


Great! For networks of 4-cores, it is not very useful,
but for highly smp machines it could be great - with your
grid5000 account, you might run crazystone on a
16-core machine and have a very impressive crazyStone.
Olivier

Thanks for the tip. Here are the results on 9x9:

cores playouts/s
   118,025
   233,749
   348,165
   462,268
   575,539
   687,136
   7   100,840
   8   115,862
  10   134,185
  12   158,491
  14   174,274
  16   205,379 (speedup = 11.4)

and on 19x19:
   13,780
   27,427
   3   11,009
   4   13,905
   5   17,684
   6   21,265
   7   24,418
   8   27,907
  10   34,710
  12   40,975
  14   48,000
  16   54,193 (speedup = 14.3)

Hardware is 8x Dual Core AMD Opteron 875, 2.2 GHz

I'll run tests to try to figure out how much strength is lost by 
parallelization (ie, what is the winning rate of 10,000 sequential 
playouts vs 1,000 playouts over 10 processors). Hideki ran similar tests 
against GNU Go, and found 25 Elo loss with 4 CPUs. So 54,193 playouts 
per second over 16 CPUs will certainly not perform as well as 54,193 
sequential playouts.


Rémi

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Lockless hash table and other parallel search ideas

2008-03-22 Thread Olivier Teytaud

Hi,

I have got a lockless hash table to work, and I thought I'd share the 
results.

[...]


Great! For networks of 4-cores, it is not very useful,
but for highly smp machines it could be great - with your
grid5000 account, you might run crazystone on a
16-core machine and have a very impressive crazyStone.
Olivier

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Lockless hash table and other parallel search ideas

2008-03-22 Thread Rémi Coulom

Don Dailey wrote:

These are used in parallel chess programs, and it's very common.   A
pretty good article on this written by Hyatt (Crafty programmer and
author of former world computer chess champion Cray Blitz) and it's
called  A lock-less transposition table implementation for parallel
search chess engines, 


I see an on-line version of a similar article here:

 http://www.cis.uab.edu/hyatt/hashing.html


- Don
  


Hi Don,

Yes, I knew Bob's paper. In his approach, an entry will be lost in case 
of a collision. In my Go program, I never replace hash entries of the 
current search, because I have enough memory to store them all. I only 
have to be careful when allocating a node for the first time, so that 
two threads do not allocate the same slot. This happens rarely enough 
that the cost of a Test-And-Swap is negligible, so I prefer to do it 
that way. What I do is essentially the beginning of the Google talk I 
indicated yesterday, without resizing. I believe it is a lot cleaner 
than Bob's idea, although atomic increments are costly.


In fact, now that I think a little more about it, Bob's scheme would 
probably not work at all, because updating counters would mean updating 
the hash code, and any collision would cause a loss of the hash entry. 
It does not matter for alpha-beta, but losing an entry near the root in 
MC search would be very bad. Really ugly stuff would be necessary to 
repair the consequences of such a collision.


So, I believe Bob's idea would not work.

Rémi
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Lockless hash table and other parallel search ideas

2008-03-22 Thread Don Dailey
I'll take a look at the references you posted - they look pretty
interesting from an initial glance at them.

- Don


Rémi Coulom wrote:
 Don Dailey wrote:
 These are used in parallel chess programs, and it's very common.   A
 pretty good article on this written by Hyatt (Crafty programmer and
 author of former world computer chess champion Cray Blitz) and it's
 called  A lock-less transposition table implementation for parallel
 search chess engines,
 I see an on-line version of a similar article here:

  http://www.cis.uab.edu/hyatt/hashing.html


 - Don
   

 Hi Don,

 Yes, I knew Bob's paper. In his approach, an entry will be lost in
 case of a collision. In my Go program, I never replace hash entries of
 the current search, because I have enough memory to store them all. I
 only have to be careful when allocating a node for the first time, so
 that two threads do not allocate the same slot. This happens rarely
 enough that the cost of a Test-And-Swap is negligible, so I prefer to
 do it that way. What I do is essentially the beginning of the Google
 talk I indicated yesterday, without resizing. I believe it is a lot
 cleaner than Bob's idea, although atomic increments are costly.

 In fact, now that I think a little more about it, Bob's scheme would
 probably not work at all, because updating counters would mean
 updating the hash code, and any collision would cause a loss of the
 hash entry. It does not matter for alpha-beta, but losing an entry
 near the root in MC search would be very bad. Really ugly stuff would
 be necessary to repair the consequences of such a collision.

 So, I believe Bob's idea would not work.

 Rémi
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Lockless hash table and other parallel search ideas

2008-03-21 Thread Don Dailey
These are used in parallel chess programs, and it's very common.   A
pretty good article on this written by Hyatt (Crafty programmer and
author of former world computer chess champion Cray Blitz) and it's
called  A lock-less transposition table implementation for parallel
search chess engines, 

I see an on-line version of a similar article here:

 http://www.cis.uab.edu/hyatt/hashing.html


- Don




Rémi Coulom wrote:
 Hi,

 I have got a lockless hash table to work, and I thought I'd share the
 results.

 A lockless hash table is very important, because the usual approach
 that consists in using a global lock during tree search and update
 does not scale well, especially on 9x9. But it is possible to create a
 completely lockless hash table data structure that works with multiple
 threads.

 Here are some links that give some indications of how such a thing can
 be done:
 http://video.google.com/videoplay?docid=2139967204534450862
 http://blogs.azulsystems.com/cliff/2007/03/a_nonblocking_h.html
 http://www.cs.rug.nl/~wim/mechver/hashtable/index.html

 Some of those links may look intimidating, but that is because the
 resize part of the algorithm is complicated. In my implementation, I
 do not resize the table, so it is very simple. Also, I update counter
 in each node with atomic increments and decrements (no need to lock).

 Here is some preliminary experimental data for 9x9 up to 8 cores,
 running 840,000 playouts, from a tactical middle-game position:

 (Cores / Playouts per second with spinlock / Playouts per second with
 lockless hash table)
 1  22,477.9  22,447.9
 2  37,769.8  43,076.9
 3  55,888.2  60,825.5
 4  61,448.4  79,470.2
 5  64,665.1  95,346.2
 6  62,407.1 110,092.0
 7  66,508.3 130,638.0
 8  59,196.6 146,341.0

 BTW, using a pthread mutex is a lot worse than a spinlock, in my
 experience. I used the fair spinlock from the Linux kernel. But any
 implementation should work.

 So, it is pretty cool. This was measured on only one run. Since it is
 not deterministic, performance may vary from one run to the other
 (especially since it does not always select the same best move). But
 it still clearly shows the superiority of the lockless hash table, and
 seems to indicate that it would still scale beyond 8 cores.

 I believe I could improve further by reducing the number of atomic
 operations. Also, thinking about how to reduce atomic operations led
 me to imagine a scheme that may works as a distributed hash table over
 a network of PCs.

 A simple scheme that would work on a single PC would consist in
 storing one counter per thread in the table. This way, it would not be
 necessary to use atomic operations to increment counters, and the
 cache coherency mechanism of the CPUs would handle sending data from
 core to core. The cost would be that in order to get the node
 counters, it would be necessary to add N values. Also, some
 information may arrive a little late to some threads (but I believe it
 is better to go run a playout rather than wait for data).

 This scheme is a bit equivalent to using a separate hash table for
 each thread, and could be generalized to a distributed hash table over
 a network: each PC would have its own hash table, and each node of the
 tree would contain two counters: my_counter and other_counter. Every
 now and then, for instance when my_counter reaches a threshold, this
 PC would broadcast my_counter to the whole network, so that everybody
 updates other_counter.

 I have not implemented this yet, but I will probably try it.

 Right now, I will test the lockless hash table more, and will probably
 connect to 9x9 CGOS with that machine sometime during the week-end.

 If you wish to implement your own lockless hash table, you should read
 Intel's documentation about its memory architecture. It can be found
 there:
 http://www.intel.com/products/processor/manuals/index.htm
 In particular, it is important to read Architecture Memory Ordering
 White Paper, and about the lock prefix, the cmpxchg operation,
 sfence, lfence, and mfence.

 The primitives I used in my algorithm are a store fence, atomic
 increment, atomic decrement, atomic compare and swap. If you
 understand what they do, you should be able to make your own lockless
 hash table.

 Have fun,

 Rémi
 ___
 computer-go mailing list
 computer-go@computer-go.org
 http://www.computer-go.org/mailman/listinfo/computer-go/

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/