Zahak, a GoLang based chess engine

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

Moderators: hgm, Rebel, chrisw

User avatar
Rebel
Posts: 7025
Joined: Thu Aug 18, 2011 12:04 pm
Full name: Ed Schröder

Re: Zahak, a GoLang based chess engine

Post by Rebel »

amanjpro wrote: Wed Jul 21, 2021 2:42 am
Rebel wrote: Tue Jul 20, 2021 5:47 pm http://rebel13.nl/a/grl.htm

1600 games.

There you go again :D

I put you in 110 elo stronger pool than version 4.0 based on your estimate of 2700 elo.

And after 55 games you seem to reach that 2700 goal.
2686 (less than what I was hoping), now I need to wait for CCRL if I could reach 2700 there (as, when I set the goal, I was thinking about CCRL rating), if not then I need to squeeze some more elo before I call the goal achieves ;)
With a hash table of 64 or 128Mb you would have :D

CCRL does!
90% of coding is debugging, the other 10% is writing bugs.
Terje
Posts: 347
Joined: Tue Nov 19, 2019 4:34 am
Location: https://github.com/TerjeKir/weiss
Full name: Terje Kirstihagen

Re: Zahak, a GoLang based chess engine

Post by Terje »

Rebel wrote: Tue Jul 20, 2021 8:35 pm My policy regarding the hash table size is to use it as out-of-the-box, I consider it as the responsibility of the programmer. Stockfish has a default size of only 16Mb and so it is tested. Of course there are exceptions, for instance Myrddin has a default setting of 1Gb, I have limited it to 128Mb. I have made an exception for Bit-Genie 5 that had only 2Mb and later changed to 8Mb.

I don't understand why programmers release their engine with low hash table sizes knowing how important it is. In case of android versions simply adjust the size, it's a separate compile anyway.
This is a ridiculous stance. The default in Weiss is 32mb and is set that low so launching a bunch of them in parallel doesn't run out of memory on testing machines. Pick a size and test every engine with that...
User avatar
Rebel
Posts: 7025
Joined: Thu Aug 18, 2011 12:04 pm
Full name: Ed Schröder

Re: Zahak, a GoLang based chess engine

Post by Rebel »

Terje wrote: Sat Aug 14, 2021 4:14 pm
Rebel wrote: Tue Jul 20, 2021 8:35 pm My policy regarding the hash table size is to use it as out-of-the-box, I consider it as the responsibility of the programmer. Stockfish has a default size of only 16Mb and so it is tested. Of course there are exceptions, for instance Myrddin has a default setting of 1Gb, I have limited it to 128Mb. I have made an exception for Bit-Genie 5 that had only 2Mb and later changed to 8Mb.

I don't understand why programmers release their engine with low hash table sizes knowing how important it is. In case of android versions simply adjust the size, it's a separate compile anyway.
This is a ridiculous stance. The default in Weiss is 32mb and is set that low so launching a bunch of them in parallel doesn't run out of memory on testing machines. Pick a size and test every engine with that...
As a former competitive programmer I think that's the world upside down. Let those with low memory limit the TT size.
90% of coding is debugging, the other 10% is writing bugs.
connor_mcmonigle
Posts: 543
Joined: Sun Sep 06, 2020 4:40 am
Full name: Connor McMonigle

Re: Zahak, a GoLang based chess engine

Post by connor_mcmonigle »

Rebel wrote: Sat Aug 14, 2021 4:44 pm
Terje wrote: Sat Aug 14, 2021 4:14 pm
Rebel wrote: Tue Jul 20, 2021 8:35 pm My policy regarding the hash table size is to use it as out-of-the-box, I consider it as the responsibility of the programmer. Stockfish has a default size of only 16Mb and so it is tested. Of course there are exceptions, for instance Myrddin has a default setting of 1Gb, I have limited it to 128Mb. I have made an exception for Bit-Genie 5 that had only 2Mb and later changed to 8Mb.

I don't understand why programmers release their engine with low hash table sizes knowing how important it is. In case of android versions simply adjust the size, it's a separate compile anyway.
This is a ridiculous stance. The default in Weiss is 32mb and is set that low so launching a bunch of them in parallel doesn't run out of memory on testing machines. Pick a size and test every engine with that...
As a former competitive programmer I think that's the world upside down. Let those with low memory limit the TT size.
... If you don't keep hash size equal across all engines, you're biasing results towards engines with larger default hash sizes. Seer defaults to a measly 16MiB which will hurt performance for anything outside of ultra stc. Would you prefer I set my default hash size to 2048MiB? Why not 8192MiB? All other major rating lists have standardized on configuring all engines to use the same hash size. Therefore, authors select a default hash size with that standard as an expectation.

I appreciate your testing my engine, but I do find this disappointing as it reduces the significance of your results :(
Terje
Posts: 347
Joined: Tue Nov 19, 2019 4:34 am
Location: https://github.com/TerjeKir/weiss
Full name: Terje Kirstihagen

Re: Zahak, a GoLang based chess engine

Post by Terje »

Rebel wrote: Sat Aug 14, 2021 4:44 pm
Terje wrote: Sat Aug 14, 2021 4:14 pm
Rebel wrote: Tue Jul 20, 2021 8:35 pm My policy regarding the hash table size is to use it as out-of-the-box, I consider it as the responsibility of the programmer. Stockfish has a default size of only 16Mb and so it is tested. Of course there are exceptions, for instance Myrddin has a default setting of 1Gb, I have limited it to 128Mb. I have made an exception for Bit-Genie 5 that had only 2Mb and later changed to 8Mb.

I don't understand why programmers release their engine with low hash table sizes knowing how important it is. In case of android versions simply adjust the size, it's a separate compile anyway.
This is a ridiculous stance. The default in Weiss is 32mb and is set that low so launching a bunch of them in parallel doesn't run out of memory on testing machines. Pick a size and test every engine with that...
As a former competitive programmer I think that's the world upside down. Let those with low memory limit the TT size.
No, it's not. Every user should adjust the hash to make sense given their available resources - the default is meaningless as there's no way to pick a value that's good for all or even most situations, and the UCI specs don't specify a default value. Defaulting to a low value avoids any chance of using too much memory on startup (before it can be adjusted by the user) and makes the most sense. Please reconsider the rules for your list or it will be meaningless.
JVMerlino
Posts: 1357
Joined: Wed Mar 08, 2006 10:15 pm
Location: San Francisco, California

Re: Zahak, a GoLang based chess engine

Post by JVMerlino »

Rebel wrote: Tue Jul 20, 2021 8:35 pm My policy regarding the hash table size is to use it as out-of-the-box, I consider it as the responsibility of the programmer. Stockfish has a default size of only 16Mb and so it is tested. Of course there are exceptions, for instance Myrddin has a default setting of 1Gb, I have limited it to 128Mb.

I don't understand why programmers release their engine with low hash table sizes knowing how important it is. In case of android versions simply adjust the size, it's a separate compile anyway.
The reason I chose 1Gb (even though now I realize the text in the ini file still says "default 128 Mb" :oops:) is because I know there are VERY few people who are going to bother to download and run Myrddin. And VERY VERY few people will run it a lot - other than CCRL and others who make rating lists. So I chose a value that I thought made sense given the wide variety of time controls among rating lists, and ever-increasing hardware power. I'm most interested in CCRL's 40/15 list, and 1Gb is appropriate there.

As for my own PERSONAL testing of Myrddin against other engines, I also just use whatever settings the engine author has provided "out of the box". This is only because I'm lazy, but it still provides me with a consistent testing environment.

As for people who create rating lists, as long as THEIR testing environment is consistent and clearly published, I'm able to extrapolate whatever information I need, if any. So my question for Ed is, is it easily discoverable anywhere on your site that you use the engine's default settings, but also have modified Myrddin's default hash table size, as well as other engines? As far as I can tell, it is not. :(

jm
User avatar
Rebel
Posts: 7025
Joined: Thu Aug 18, 2011 12:04 pm
Full name: Ed Schröder

Re: Zahak, a GoLang based chess engine

Post by Rebel »

Maybe I am just a bit old-fashioned, 128 Mb it will be, changed the web page. Now I hope I don't get new complaints :wink:
90% of coding is debugging, the other 10% is writing bugs.
JVMerlino
Posts: 1357
Joined: Wed Mar 08, 2006 10:15 pm
Location: San Francisco, California

Re: Zahak, a GoLang based chess engine

Post by JVMerlino »

Rebel wrote: Sat Aug 14, 2021 8:06 pm Maybe I am just a bit old-fashioned, 128 Mb it will be, changed the web page. Now I hope I don't get new complaints :wink:
Well, some will say that you have to start over. :-) But thanks for making that change.
Terje
Posts: 347
Joined: Tue Nov 19, 2019 4:34 am
Location: https://github.com/TerjeKir/weiss
Full name: Terje Kirstihagen

Re: Zahak, a GoLang based chess engine

Post by Terje »

Rebel wrote: Sat Aug 14, 2021 8:06 pm Maybe I am just a bit old-fashioned, 128 Mb it will be, changed the web page. Now I hope I don't get new complaints :wink:
Thank you, much appreciated. :)
amanjpro
Posts: 883
Joined: Sat Mar 13, 2021 1:47 am
Full name: Amanj Sherwany

Re: Zahak, a GoLang based chess engine

Post by amanjpro »

JVMerlino wrote: Sat Aug 14, 2021 8:08 pm
Rebel wrote: Sat Aug 14, 2021 8:06 pm Maybe I am just a bit old-fashioned, 128 Mb it will be, changed the web page. Now I hope I don't get new complaints :wink:
Well, some will say that you have to start over. :-) But thanks for making that change.
While I agree for total fairness (in a short term), replaying all the matches might be necessary... but with time the effect of this change will disappear :)

So, I actually vote against replaying the games, only because it won't matter much in a long run


@Ed, I appreciate the change, thanks a lot :)