Gaviota tablebases, Probing Code Release (Finally)

Discussion of chess software programming and technical issues.

Moderator: Ras

User avatar
michiguel
Posts: 6401
Joined: Thu Mar 09, 2006 8:30 pm
Location: Chicago, Illinois, USA

Re: Gaviota tablebases, Probing Code Release (Finally)

Post by michiguel »

kingliveson wrote:Miguel, congratulations on a fine work well done.

Franklin
Thank you. We'll see if it was a real fine work after other developers put their hands on it. That will seriously test them.

Miguel
User avatar
michiguel
Posts: 6401
Joined: Thu Mar 09, 2006 8:30 pm
Location: Chicago, Illinois, USA

Re: Gaviota tablebases, Probing Code Release (Finally)

Post by michiguel »

Aaron Becker wrote:Looks great, I'll be experimenting with adding support to Daydreamer. FYI, some compilers (at least gcc 4.0.1) don't work correctly with variables that start with two underscores, because those symbols are reserved for system use. This breaks wrap.c and hzip.c, but is easily fixed by renaming the offending variables.
Thanks a lot! I did not even remember I had those couple of stupid variables. I will fix quickly fix that.

edit: One question. For UCI engines, would you recommend a standard set of options to control tablebase use? I'm sure end users would be appreciative if there was some standardization on this point.
Gaviota is a winboard engine so I do not know what to say. What are those in Nalimov's?

In Xboard/Winboard I have some options controlled by the GUI. EGTB Path and EGTB Cache size are in the same menu as the polyglot UCI engines. Some other important parameters would be probing depth, compression scheme, Restart (needed after changing compression schemes or paths), and... maybe TB test = not implemented in the API yet, but it could be very useful as I have it in Gaviota. It goes through all the longest mates from each file, basically testing the whole set.

Miguel
Stephan Vermeire (Brutus)
Posts: 34
Joined: Sun Oct 12, 2008 6:32 pm

Re: Gaviota tablebases, Probing Code Release (Finally)

Post by Stephan Vermeire (Brutus) »

Great job! It's the first opensource ebtg that has been released sofar. This really is a great contribution to the chess community!

open source rules!
Stephan
frankp
Posts: 233
Joined: Sun Mar 12, 2006 3:11 pm

Re: Gaviota tablebases, Probing Code Release (Finally)

Post by frankp »

Nice work.
Is there a tablebase generator (Linux) to go with the code?
Aaron Becker
Posts: 292
Joined: Tue Jul 07, 2009 4:56 am

Re: Gaviota tablebases, Probing Code Release (Finally)

Post by Aaron Becker »

Gaviota itself can generate the tablebases with the command tbgen. I used the linux version to create a 4-man set for testing yesterday. I'll add that the probing code is working great in Daydreamer so far.
Dann Corbit
Posts: 12777
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Gaviota tablebases, Probing Code Release (Finally)

Post by Dann Corbit »

Stephan Vermeire (Brutus) wrote:Great job! It's the first opensource ebtg that has been released sofar. This really is a great contribution to the chess community!

open source rules!
Stephan
Actually, it is the first open source tablebase system that is unencumbered.

Eugene's tablebase system is open source also, but has a restrictive license.
Teemu Pudas
Posts: 88
Joined: Wed Mar 25, 2009 12:49 pm

Re: Gaviota tablebases, Probing Code Release (Finally)

Post by Teemu Pudas »

Dann Corbit wrote:Eugene's tablebase system is open source also, but has a restrictive license.
What's your definition of "open source"?
mathmoi
Posts: 290
Joined: Mon Mar 13, 2006 5:23 pm
Location: Québec
Full name: Mathieu Pagé

Re: Gaviota tablebases, Probing Code Release (Finally)

Post by mathmoi »

Teemu Pudas wrote:
Dann Corbit wrote:Eugene's tablebase system is open source also, but has a restrictive license.
What's your definition of "open source"?
I agree with Dan's definition. I prefer the term Free software to name what opensource.org describe. Note that it's not because they call themselve Open Source Initiative that they can define what is what is not open source.
Stephan Vermeire (Brutus)
Posts: 34
Joined: Sun Oct 12, 2008 6:32 pm

Re: Gaviota tablebases, Probing Code Release (Finally)

Post by Stephan Vermeire (Brutus) »

Dann Corbit wrote:
Stephan Vermeire (Brutus) wrote:Great job! It's the first opensource ebtg that has been released sofar. This really is a great contribution to the chess community!

open source rules!
Stephan
Actually, it is the first open source tablebase system that is unencumbered.

Eugene's tablebase system is open source also, but has a restrictive license.
I just knew that someone was going to say this! :wink:
vb4
Posts: 165
Joined: Sat Mar 11, 2006 5:45 am
Location: NY

Re: Gaviota tablebases, Probing Code Release (Finally)

Post by vb4 »

Dann Corbit wrote:
michiguel wrote:http://sites.google.com/site/gaviotache ... e/releases

Enjoy, it comes with zero support :-)
You are free to do whatever the MIT License allow you to do, which is almost everything.

Version is v0.1, meaning, I hope there is no bugs, but if there is any, let me know and v1.0 won't have them. Some other features are intended to be added before 1.0. In any case, this is what I am using currently in Gaviota and works well.

It was a painful job to excise the whole code from Gaviota to release this as a module. The code is still messy and should be considered a useful prototype. It works (or at least it is supposed to), but do not go to look for beauty in it. I feel quite embarrassed about it.

The performance is acceptable, IMHO, but there are lots of room for improvement. In fact, some functions were designed on purpose to be simple so they will work the first time. Still, some of those were not optimized and are primitive. Since the bottleneck is HD access, you will probably won't notice it. The cache system is quite efficient, IMHO though, which is important.

If there is anything good about this, is the function tb_probe_soft, which will probably set this apart from the Nalimov scheme. In addition, the compression of the scheme 4 is better.

Good luck with them!

Miguel
PS: The generator code release will come later.
This is utterly fantastic news. This is good news for:
1. Those who requested the use of Nalimov tablebase files and for *years* got as many replies as they got from the Egyptian Sphynx.
2. Those who want to add tablebase files but for which Nalimov files are not an option (e.g. license is incompatible).
3. Those who want to study tablebase files (though it will be much more useful when the generation code is released).

I second #3 <S>. I think it is great that Miguel has taken the time to develop an app with some long range projections in mind. Good work Miguel! and many thx


I do herefore make a beseaching plea to chess programmers:
Standardize on the Gaviota tablebase files, or (at least) have an interface to them as an alternative. I don't want 9 different collections of 6 man EGTB files on my hard drives and neither does anyone else. If you want to write your own tablebase files, I think it is a wonderful idea, and I support that. But think of the poor slobs who have to install these disk chewing collections on their poor, straining hard drives. A terabyte will soon be under $100? Sure. But 7 man files are right around the corner.

This is a great idea for standarization. No reason why it cant be excepted as a standard.

Give us this choice, pretty please, down on my knees, with sugar and cream on it and a cherry.

Dann your beginning to sound like a begger <S>. But in all honesty I too am dropping down on my knees.

;-)