Christophe, Zach and Norman? Made a Promise- I Want It

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

Jan Brouwer
Posts: 201
Joined: Thu Mar 22, 2007 7:12 pm
Location: Netherlands

Re: Christophe, Zach and Norman? Made a Promise- I Want It

Post by Jan Brouwer »

As is often the case, I think there two sides to this issue.
It seems there are some indications that Vas may have used some the code of fruit as a staring point
(I have not checked this myself, but I don't assume others are just making this up).
If that is the case then maybe technically, this was a violation of the GPL, by not releasing the modifed source code.

But I think we should not realy care about this.
Any good programmer can take the source code of a strong open source chess program (or two), and modify it beyond
recognition without compromising the strenght too much (as long as he has a good testing methodology).

It is clear that Vas has done a tremendous job of developing an very strong engine,
and I for one am very glad he hasn't released its source code, GPL or not.
I see chess programming as a competition between programmers and Vas is the clear winner in that respect.
User avatar
M ANSARI
Posts: 3707
Joined: Thu Mar 16, 2006 7:10 pm

Re: Christophe, Zach and Norman? Made a Promise- I Want It

Post by M ANSARI »

bob wrote:
mhull wrote:
chrisw wrote:
It's like a rowing boat, an eight or a four.
Or trolling in a boat.
chrisw wrote: You can put together the finest and latest lightweight sleek design, with superdesigned oars and rowlocks, perfect seating glide, the best oarsmen, the lightest cox and they'll be hopeless, because they are not practised, tuned and working as one - maybe even they don't fit together and never will.
For example, Checkmate - The Final Word in Chess.
chrisw wrote: ...It's the failure to understand, let alone repeat, the genius of the overview that leads to the envy and the criticism. He has an understanding level above and beyond, so he can simply look down in resigned amusement.
Understanding above and beyond, as in splitting at the root on a cluster.
Splitting at the root is an ok "first approximation" to a cluster-search. The only thing I don't like is the claim of +100 Elo from doing it. That is simply false. Splitting at the root might be a reasonable way of _starting_ a cluster search. That's not really an issue. But to get +100 Elo, you need to be in the 3x-4x faster range. On 5 nodes? Splitting at the root. Not possible. Not even in an alternate universe.
Bob ... I really don't understand what splitting of the root or whatever it is called ... but I think I have a general idea of how Rybka Cluster works and I looked at all its games and I am pretty sure I can simulate the cluster on single moves by going back and doing what I think each of the "nodes" would have done and compiling the results. Also the 100 ELO claim by Vas was in very fast time control games ... probably 1 min games ... which he usually does to get an idea of how the performance is. Usually at 1 0 the ELO is inflated and at longer time controls the slower engine will be able to get more draws and thus improve the ELO difference to probably 60 or 70 ELO.

You have 5 equal strength hardware with equal engines. The Master plays normal full strength looking at say PV 0. Then one Slave computer (let us call it move generator Slave) is put into 3 PV mode where none of the PV's match the Master PV ... so PV 1 and PV 2 and PV 3 which would be the second and third and fourth best moves. Now PV 1 and PV 2 and PV 3 are fed into two other identical computers and these PV's will only change if the move generator changes its evaluation of the PV's. So now you have 4 full bored PV's (Master inclusive) that should play much stronger than if you had a single computer. If you are using 5 Octa's ... then obviously the undetermenistic nature of MP engines alone would make some difference, and ofcourse having full bored PV's gives you a very robust search tree. How much stronger is that I am not sure ... but it does play stronger and will find better moves much quicker than you think.

Look at this position

[d]2r2k2/6p1/1p2pp1p/p1P1R2P/2K5/1P6/P4PP1/8 w - - 0 1

I use an 8 core 4Ghz with 4 PV's and I will get the following move choices after 5 seconds

1. Kb5
2. Rxe6
3. Rxe4
4. Re3

Now if I let Rybka 3 Octa alone try this position. It will like Kb5 after about 4 minutes with approximatel +.40 evaluation

Now if I force feed Kb5 to Rybka simulating one of the Slaves I get

Kb5 +.80 after 3 seconds
Kb5 +1.32 after 15 seconds
Kb5 +1.60 after 30 seconds

Clearly showing that this is winning. So this move on the cluster would have been played as winning after 15 seconds ... while the normal Octa stand alone even after 6 minutes was only showing +.80

I chose this position simply because it was being discussed on Rybka forum with regards to performance of i7 processors. But I have looked at Rybka cluster's games and I can see how it comes up with amazingly strong moves so quickly. I can show you dozens of similar examples and I am convinced without a doubt that what he is doing works and works extremely well. Is it the most efficient way to make use of 40 cores .... probably not ... but it sure as hell is going to play a lot stronger than a standalone 8 core.

So you see there are other ways of skinning a cat. Vas is using a cunningly simple and SAFE way of getting performance from his cluster. He is doing what all Freestyle players do at home when they play a Freestyle game. As probably the most successful freestyle player he knows that this works. This is a simple way to run a cluster without the complications o trying to work with crazy complications and latencies that would amass many bugs.
Last edited by M ANSARI on Tue Dec 02, 2008 10:07 pm, edited 3 times in total.
User avatar
Rolf
Posts: 6081
Joined: Fri Mar 10, 2006 11:14 pm
Location: Munster, Nuremberg, Princeton

Re: Christophe, Zach and Norman? Made a Promise- I Want It

Post by Rolf »

Dann Corbit wrote: If chess competition has come to the point where winning and losing is the only important thing and learning new ideas should be punished then chess programming is going in entirely the wrong direction.
It's a pity that you didnt state this when friends like Ed or Chris got problems because they not even had programs fit for WINDOWS. Or which didnt use enough the actual hardware advantages. At that time I remember well, Chris was laughed at for his ideas. At that time (long ago during the WCC in Paris) only points points points were counting. Although what you said here is such a bare self-understood truth that it would surprise me that smart programmers havent known it. But they all were obsessed by points. Especially to get them in Jakarta's dictatorship system. Now when there is an absolute top scorer above all others that alone requires a re-defining of the where abouts of chess competition...
-Popper and Lakatos are good but I'm stuck on Leibowitz
Gerd Isenberg
Posts: 2250
Joined: Wed Mar 08, 2006 8:47 pm
Location: Hattingen, Germany

Re: Christophe, Zach and Norman? Made a Promise- I Want It

Post by Gerd Isenberg »

Rolf wrote:Thanks, I hadnt seen Bobs answer before. Then the money thing was a question of what such a analysis would cost you, just you?
Roughly 100€/hour times 200 days times 8 hours/day.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Christophe, Zach and Norman? Made a Promise- I Want It

Post by bob »

M ANSARI wrote:
bob wrote:
mhull wrote:
chrisw wrote:
It's like a rowing boat, an eight or a four.
Or trolling in a boat.
chrisw wrote: You can put together the finest and latest lightweight sleek design, with superdesigned oars and rowlocks, perfect seating glide, the best oarsmen, the lightest cox and they'll be hopeless, because they are not practised, tuned and working as one - maybe even they don't fit together and never will.
For example, Checkmate - The Final Word in Chess.
chrisw wrote: ...It's the failure to understand, let alone repeat, the genius of the overview that leads to the envy and the criticism. He has an understanding level above and beyond, so he can simply look down in resigned amusement.
Understanding above and beyond, as in splitting at the root on a cluster.
Splitting at the root is an ok "first approximation" to a cluster-search. The only thing I don't like is the claim of +100 Elo from doing it. That is simply false. Splitting at the root might be a reasonable way of _starting_ a cluster search. That's not really an issue. But to get +100 Elo, you need to be in the 3x-4x faster range. On 5 nodes? Splitting at the root. Not possible. Not even in an alternate universe.
Bob ... I really don't understand what splitting of the root or whatever it is called ... but I think I have a general idea of how Rybka Cluster works and I looked at all its games and I am pretty sure I can simulate the cluster on single moves by going back and doing what I think each of the "nodes" would have done and compiling the results. Also the 100 ELO claim by Vas was in very fast time control games ... probably 1 min games ... which he usually does to get an idea of how the performance is. Usually at 1 0 the ELO is inflated and at longer time controls the slower engine will be able to get more draws and thus improve the ELO difference to probably 60 or 70 ELO.

You have 5 equal strength hardware with equal engines. The Master plays normal full strength looking at say PV 0. Then one Slave computer (let us call it move generator Slave) is put into 3 PV mode where none of the PV's match the Master PV ... so PV 1 and PV 2 and PV 3 which would be the second and third and fourth best moves. Now PV 1 and PV 2 and PV 3 are fed into two other identical computers and these PV's will only change if the move generator changes its evaluation of the PV's. So now you have 4 full bored PV's (Master inclusive) that should play much stronger than if you had a single computer. If you are using 5 Octa's ... then obviously the undetermenistic nature of MP engines alone would make some difference, and ofcourse having full bored PV's gives you a very robust search tree. How much stronger is that I am not sure ... but it does play stronger and will find better moves much quicker than you think.

Look at this position

[d]2r2k2/6p1/1p2pp1p/p1P1R2P/2K5/1P6/P4PP1/8 w - - 0 1

I use an 8 core 4Ghz with 4 PV's and I will get the following move choices after 5 seconds

1. Kb5
2. Rxe6
3. Rxe4
4. Re3

Now if I let Rybka 3 Octa alone try this position. It will like Kb5 after about 4 minutes with approximatel +.40 evaluation

Now if I force feed Kb5 to Rybka simulating one of the Slaves I get

Kb5 +.80 after 3 seconds
Kb5 +1.32 after 15 seconds
Kb5 +1.60 after 30 seconds

Clearly showing that this is winning. So this move on the cluster would have been played as winning after 15 seconds ... while the normal Octa stand alone even after 6 minutes was only showing +.80

I chose this position simply because it was being discussed on Rybka forum with regards to performance of i7 processors. But I have looked at Rybka cluster's games and I can see how it comes up with amazingly strong moves so quickly. I can show you dozens of similar examples and I am convinced without a doubt that what he is doing works and works extremely well. Is it the most efficient way to make use of 40 cores .... probably not ... but it sure as hell is going to play a lot stronger than a standalone 8 core.

So you see there are other ways of skinning a cat. Vas is using a cunningly simple and SAFE way of getting performance from his cluster. He is doing what all Freestyle players do at home when they play a Freestyle game. As probably the most successful freestyle player he knows that this works. This is a simple way to run a cluster without the complications o trying to work with crazy complications and latencies that would amass many bugs.
1. You can _always_ find a position where any sort of parallel search, good or bad, produces a better result much faster. But over the course of a game, this disappears.

2. The problem is that 90% of the effort is spent in searching the first branch at the root. Now you have N nodes each searching a different first branch at the root, but the real best move will not be discovered until that node completes it, which is going to take the same old 90% of the time at the same depth as if you were not on a cluster. That leaves you a 10% window to do _useful_ work in parallel.

The problem with this is that it has been carefully analyzed. I need to scan in the journal of parallel computing paper I wrote 20 years ago, it explains this carefully and mathematically and shows _exactly_ what happens when you search in parallel without a properly defined set of bounds, which is what happens when you search multiple moves at the root in parallel before the first root move is completed...

+100 is simply not possible, period, except in extremely _rare_ cases. Now if you are talking about human-assisted chess where you use multi-pv to give the human something to choose from, then I would buy it because multi-PV mode is very inefficient by nature, and using separate nodes for each PV would not be a lot worse than the traditional multi-PV search on a single node except the cluster approach does give up the shared transposition hits that might help. But in normal "play the best move" chess, getting +100 is simply not possible. And it can be (and has been) proven mathematically...
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Christophe, Zach and Norman? Made a Promise- I Want It

Post by bob »

dj wrote:Agreed. I have always found the suggestion that Vas has somehow "stolen" something from Fruit very odd. Vas himself has said that the original Rybka owed perhaps 10% or so to Fruit, but Fruit was open source and everybody took what they wanted from the program. Vas took what he thought appropriate and along with his many other sources of inspiration - internal and external - fashioned a program that was better than its contemporaries. He had neither more nor less access to Fruit than anybody else.

There are those who always want to knock those at the top. For example, some people want to attack ChessBase because it is the largest and most successful of the chess software companies. No doubt it has its faults but for some it seems an object of hatred primarily because it is so successful. Similarly many attack Microsoft - seemingly for no concrete reason other than that it is the top of the tree.
Can we at least stick to the _claim_ that has been made. Nobody has claimed that he did or didn't take _ideas_ from Fruit. The statement has been made that it appears that he copied actual _code_ from fruit. That is a different matter from copying ideas, and it is a completely unacceptable matter at that. So stop trying to change the discussion into something other than what it is, and then arguing against that which has not even been claimed. This is about a simple issue of copying source code, line for line. Nothing more, nothing less.

Some try to propose that different programmers might well produce the same code. But that is utter nonsense. For complex programs, 10,000 people could write a program to accomplish the same task and it is most improbable that you could do some sort of source string comparison and find significant matches. Single lines here and there? Most likely. Same variable names here and there. Also possible. But identical blocks of code? No way. And that is where this discussion is at, and always has been...
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Christophe, Zach and Norman? Made a Promise- I Want It

Post by bob »

Michael Sherwin wrote:
chrisw wrote:
Rolf wrote:
bob wrote:
Rolf wrote:
bob wrote: So let's get off this bad analogy approach unless you can choose an analogy that actually supports your position rather than contradicts it.
It's my fault that you missed the main point I made. Therefore just for completeness reasons. You are repeating the same output, the moves and such but my example meant this: following you it was the same, a copy or whatever term of your choice, but how could it be faster, in my example of the cars, and in chess 100 points better all of the time with rising version numbers? I'm only speaking about this surplus.
If it were so easy to at first begin with the copy then why many others arent doing the same? In my books that speaks clearly against your hypothesis that Rybka1beta was a copy. Then what is your final verdict? I measn, what relevance legally, justice, court, this what you see and claim does have?? Violations of past experiences? Into what category that crime belongs? We have never done this, this would be completely new... It will always insult masters of concrete/beton/past.
I don't see why you don't get this. You steal a super-secret high-performance engine, and then mount it in a better carbon-fiber chassis/body so that it now is faster than anything around. Partially because of the innovation of the carbon-fiber chassis, but also because of the stolen high-performance motor. Is this OK? Not in my mind. If you steal something and improve it, it is still stolen property...
Then what is with the almost 80% you all have stolen/taken from your forefathers?? And again, Vas didnt just once improve the performance on the base of the bitboard design but he does it with every new version. From where did he steal this? If not from his own genius!

Bob, guess is the best student you ever had, and better than yourself, cant you imagine a method in the field itself plus some ingenious marketing ideas, that Vas might have followed? That is the difference, Bob, where mere stealing is transforming into genius creativity. You speak of a secret that you would want to know. But then at first consider that Vas is really some improvement. Lay asks, could it be that a genial programmer could have introduced a sort of loop - invisible - that forces false output to rippers? IMO the secret doesnt lie in a concrete place, it's the overall design. Ok, now make some jokes about my ignorance.
It's like a rowing boat, an eight or a four. You can put together the finest and latest lightweight sleek design, with superdesigned oars and rowlocks, perfect seating glide, the best oarsmen, the lightest cox and they'll be hopeless, because they are not practised, tuned and working as one - maybe even they don't fit together and never will.

Vas genius was to take the components of chess programming, mostly known, and work them together into a lean mean perfectly tuned machine. He took two and two and made five, that's his genius and that's what makes him stand head and shoulders above the opposition. The genius is in the overview, the design, the feel for what he is doing. The proof is in the performance. It's the failure to understand, let alone repeat, the genius of the overview that leads to the envy and the criticism.

What I like in particular is Vas completely relaxed attitude to the venom that is thrown at him. He has an understanding level above and beyond, so he can simply look down in resigned amusement.

Viva Vas and Viva Rybka.
And I would add that the idea that Vas stole anything from Fruit is wrong. You can not steal what was given! GPL or no GPL, Fabien published his ideas for all to use. It looks as though Vas may have used some framework code from Fruit (and maybe some constants that were probably, "best by test"), but that is mundane and nobody should care. The engine itself is a complete rewrite and shares no code with the original. And it is Vastly improved. :D
The ideas are free for all to take. The actual source code is _not_ free unless you follow the specific GPL guidelines however. I don't see why we keep coming back to the discussion about "taking ideas" when the original claim was "actual source code was copied." The two are _not_ the same thing.
Edsel Apostol
Posts: 803
Joined: Mon Jul 17, 2006 5:53 am
Full name: Edsel Apostol

Re: Christophe, Zach and Norman? Made a Promise- I Want It

Post by Edsel Apostol »

Michael Sherwin wrote:
chrisw wrote:
Rolf wrote:
bob wrote:
Rolf wrote:
bob wrote: So let's get off this bad analogy approach unless you can choose an analogy that actually supports your position rather than contradicts it.
It's my fault that you missed the main point I made. Therefore just for completeness reasons. You are repeating the same output, the moves and such but my example meant this: following you it was the same, a copy or whatever term of your choice, but how could it be faster, in my example of the cars, and in chess 100 points better all of the time with rising version numbers? I'm only speaking about this surplus.
If it were so easy to at first begin with the copy then why many others arent doing the same? In my books that speaks clearly against your hypothesis that Rybka1beta was a copy. Then what is your final verdict? I measn, what relevance legally, justice, court, this what you see and claim does have?? Violations of past experiences? Into what category that crime belongs? We have never done this, this would be completely new... It will always insult masters of concrete/beton/past.
I don't see why you don't get this. You steal a super-secret high-performance engine, and then mount it in a better carbon-fiber chassis/body so that it now is faster than anything around. Partially because of the innovation of the carbon-fiber chassis, but also because of the stolen high-performance motor. Is this OK? Not in my mind. If you steal something and improve it, it is still stolen property...
Then what is with the almost 80% you all have stolen/taken from your forefathers?? And again, Vas didnt just once improve the performance on the base of the bitboard design but he does it with every new version. From where did he steal this? If not from his own genius!

Bob, guess is the best student you ever had, and better than yourself, cant you imagine a method in the field itself plus some ingenious marketing ideas, that Vas might have followed? That is the difference, Bob, where mere stealing is transforming into genius creativity. You speak of a secret that you would want to know. But then at first consider that Vas is really some improvement. Lay asks, could it be that a genial programmer could have introduced a sort of loop - invisible - that forces false output to rippers? IMO the secret doesnt lie in a concrete place, it's the overall design. Ok, now make some jokes about my ignorance.
It's like a rowing boat, an eight or a four. You can put together the finest and latest lightweight sleek design, with superdesigned oars and rowlocks, perfect seating glide, the best oarsmen, the lightest cox and they'll be hopeless, because they are not practised, tuned and working as one - maybe even they don't fit together and never will.

Vas genius was to take the components of chess programming, mostly known, and work them together into a lean mean perfectly tuned machine. He took two and two and made five, that's his genius and that's what makes him stand head and shoulders above the opposition. The genius is in the overview, the design, the feel for what he is doing. The proof is in the performance. It's the failure to understand, let alone repeat, the genius of the overview that leads to the envy and the criticism.

What I like in particular is Vas completely relaxed attitude to the venom that is thrown at him. He has an understanding level above and beyond, so he can simply look down in resigned amusement.

Viva Vas and Viva Rybka.
And I would add that the idea that Vas stole anything from Fruit is wrong. You can not steal what was given! GPL or no GPL, Fabien published his ideas for all to use. It looks as though Vas may have used some framework code from Fruit (and maybe some constants that were probably, "best by test"), but that is mundane and nobody should care. The engine itself is a complete rewrite and shares no code with the original. And it is Vastly improved. :D
I agree that there is nothing wrong with using ideas from open source engines. The issue is by giving a false statement that the idea that was borrowed/adapted is not that good maybe to divert other programmers.
Anyway, if I really had to give a number - my wild guess is that Rybka would be 20 rating points weaker had Fruit not appeared.
Maybe for this reason:
but at the moment I must also think about protecting my secrets. It's the eternal struggle for a computer chess programmer.
Later it was shown by the other people here through Strelka that the ideas borrowed was the framework that makes that engine strong.

I'm not attacking anyone here. I'm just noting what I've observed.
User avatar
mariaclara
Posts: 4186
Joined: Wed Mar 08, 2006 9:31 pm
Location: Sulu Sea

Re: Christophe, Zach and Norman? Made a Promise- I Want It

Post by mariaclara »

:?:

does the phrase ".........it appears......." constitute solid proof:?:

or is it a malicious smear disguised as intelligent discussion?

:roll: :wink: :roll:
.
.

................. Mu Shin ..........................
Terry McCracken
Posts: 16465
Joined: Wed Aug 01, 2007 4:16 am
Location: Canada

Re: Christophe, Zach and Norman? Made a Promise- I Want It

Post by Terry McCracken »

mariaclara wrote::?:

does the phrase ".........it appears......." constitute solid proof:?:

or is it a malicious smear disguised as intelligent discussion?

:roll: :wink: :roll:
Who are you referring to?

Blocks of code shown here on this forum didn't appear like there were the same!