sje wrote:Don wrote:Does this conform to my protocol or does it need to be wrapped up to do so?
See the list of needed changes I posted earlier. There is still work to be done.
I have a server and client all working they way I want and it should be able to handle a large number of clients.
I did a perft(13) test - estimating how long by doing 315 pieces of it to 7 ply
and if I were running just my slow single core client on a local server it would take about 4.5 years. Of course this doubles with a verification pass.
I am still unsettled on the verification pass. I wanted to make the rule be that I assigned all work twice - and that I take care to never assign the same piece of work to the same client - but if a client is updated it will get a different name although it might have the same bug. Also, if one client (presumably the fastest and most popular) is run significantly more than another, there will be scheduling issues. So I need to work out that issue.
I think I have the solution. First of all, we should go back to 64 bit keys because I don't think it will matter if your program is modified to use "rotating tables", which means the zobrist keys should be randomly created and different for each run. If we do this, we can use the same binaries for the verification pass because it's impossible (for all practical purposes) to get the same collisions on the same work assignment using different tables.
I would be worried less about using the same clients for the verification run if we did this. Any bugs not related to collisions would likely be revealed by one client getting several runs wrong compared to the other clients and this would be picked up.
64 bit keys should be used if we are going to do a verify pass anyway (but only if you use a rotating table) because even if the larger keys slowed down the program by even 1% it would not pay for itself. And I'm sure it will slow down the program more than this just from the slight overhead of generating more key as well as the smaller table size this would require.
Capital punishment would be more effective as a preventive measure if it were administered prior to the crime.