Perft helpers

Discussion of chess software programming and technical issues.

Moderator: Ras

SuneF
Posts: 127
Joined: Thu Sep 17, 2009 11:19 am

Re: Perft helpers

Post by SuneF »

Don wrote: The server does not maintain connections and it does not know who was assigned or when it was assigned. it gets the assignment then exits. When it's posted then I check the credentials. So all I'm saying is that what seems easy requires yet another protocol change, more bookeeping and so on.
So what you're saying is, because you didn't use a database it's now too much work to change things?
I wonder who tried to point that out earlier... hmm let me think
(Sorry you were sort of asking for that one :wink:)

Btw you don't need to keep the connections, you just need to remember who you gave what to, like a foreign key between the user and perft table (or whatever the equivalent might be in your no-sql solution).
Maybe a small user oriented memory queue of some sort, should be fairly easy since the clients do not cache so there aren't too many outstanding result per user (unless they run 100 clients of course).
User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: Perft helpers

Post by Don »

The server knows who is posting a result and what bin was used.

It does not know who is requesting work or other info it can report.
Capital punishment would be more effective as a preventive measure if it were administered prior to the crime.
User avatar
Ajedrecista
Posts: 2098
Joined: Wed Jul 13, 2011 9:04 pm
Location: Madrid, Spain.

Re: Perft helpers: Perft(14) is running!

Post by Ajedrecista »

Hello Don:
Don wrote:We finished the calculation, but most of the way through one of the authors of the binaries realized there was a serious hashing bug. But that was a big part of the reason to do this trial run, to shake out bugs.

The bug affects a tiny fraction of the positions and of course made the calculation incorrect. We have now correct some of the results and are doing a pass, first focused on the positions run with this particular binary. As records are corrected the web page updates with the new results.

Code: Select all

            Correct answer:   62,854,969,236,701,747
 Previous Incorrect result:   62,853,414,159,200,789
            Updated result:   62,853,414,480,669,287
I realized some days ago about the finish of Distributed Perft(12) Calculation but I have just realized about the progress of Distributed Perft(14) Calculation.
Server 1 used for the gperftd binaries
Server 2 used for the melee binaries
I think that melee is a perft counter by Kong Siam... am I right? But I do not know about gperftd: who is its author?

I could be interested in this project, though my contribution would me minimal. I suppose that the programme is not publicly available but available by personal request. I took a look to the screenshot and it looks rather good! Thanks in advance.

Regards from Spain.

Ajedrecista.
User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: Perft helpers: Perft(14) is running!

Post by Don »

Ajedrecista wrote:Hello Don:
Don wrote:We finished the calculation, but most of the way through one of the authors of the binaries realized there was a serious hashing bug. But that was a big part of the reason to do this trial run, to shake out bugs.

The bug affects a tiny fraction of the positions and of course made the calculation incorrect. We have now correct some of the results and are doing a pass, first focused on the positions run with this particular binary. As records are corrected the web page updates with the new results.

Code: Select all

            Correct answer:   62,854,969,236,701,747
 Previous Incorrect result:   62,853,414,159,200,789
            Updated result:   62,853,414,480,669,287
I realized some days ago about the finish of Distributed Perft(12) Calculation but I have just realized about the progress of Distributed Perft(14) Calculation.
Server 1 used for the gperftd binaries
Server 2 used for the melee binaries
I think that melee is a perft counter by Kong Siam... am I right? But I do not know about gperftd: who is its author?

I could be interested in this project, though my contribution would me minimal. I suppose that the programme is not publicly available but available by personal request. I took a look to the screenshot and it looks rather good! Thanks in advance.

Regards from Spain.

Ajedrecista.
We were going to make an announcement when I get back from a trip to Boston next week and try to get more volunteers but we want to make sure everything is running smoothly first. It appears that it is. We completed a perft(12) test run to iron out bugs and have now started a perft(14) run with a small handful of volunteers. Everything is in place and it's working well.

We are basically doing 2 simultaneous runs on 2 separate servers with 2 (or more later) families of perft binaries. One is gperftd by Paul Byrne and the other is Melee by Kong Siam. The server will not accept results from binaries that are not approved for that server. We can later add other binaries and any we do add will go strictly to one server or the other, not both. A user can run any of the "blessed" binaries he wishes and the client is smart enough to go to the correct server.

This will not go quickly unless we get a lot of volunteers, i.e. a lot of CPU power. I think if we do we will be the first to do perft(14) but sooner or later someone else will do it and verify our results or we will be verifying theirs. The two servers are not synchronized in any special way but they are part of the same system and any conflicts are noticed and reported within 4 hours. The web page reports progress on each server, as well as the verified results and projected completion time based on the progress over some time interval (which is set for the last 7 days now.)

I want to get as many volunteers as possible but I won't be home till Friday - I will then try to solicit help. If you send email I probably won't respond until at least Friday or later but I will respond with instructions. I will need a user name that you can choose - anything reasonable such as your name, nickname or whatever and I will send back a password that you will configure. I am happy to get a little help, or a lot.

No amount of help is too small as we will need a LOT in order to do this in a reasonable amount of time, say less than a year. The current web site reports an estimated completion date of October 2018 but only 4 of us are running and I don't think any of us are hitting with all we got. (I'm using a slow spare machine.) The server could easily handle enough users to complete this in less than 2 days. So it will take 6 years with almost no help or 2 days with a huge effort and a lot of help but likely something in between. Of course we might get an initial result a lot more quickly if one server completes well before the other.

The clients are graphical as you have seen but I will have a non-graphical version ready for anyone willing to loan us some CPU cycles on clusters or big machines.

By the way, anyone with a really super-fast perft binary - we could put it to use. It has to follow a simple protocol and I would test it first. The two binaries we now have seem to be very fast and good but I don't really know how they compare in performance to what is possible. Maybe they are close to the ultimate but if you think you can do better anything that speeds this up would be a big help.

We are also studying to determine the best way to run this. One of the binaries allows you to set the number of threads so the question is how big to set the hash table and whether it's better to run 1 instance with many threads and a big table or separate smaller single thread instances.
Capital punishment would be more effective as a preventive measure if it were administered prior to the crime.