Ras wrote: ↑Fri Nov 06, 2020 7:06 pm
mvanthoor wrote: ↑Thu Nov 05, 2020 9:31 amAnd... 1m+0.6s? And here I was, thinking that 2m+1s was already an idiotically fast time control....
I can even test my engine at 1s+0, with a typical midgame depth around 6-7. There are sporadic losses on time, but I allocate a minimum thinking time depending on the game phase, and that buys more Elo than I lose on occasional time forfeits.
Interestingly, there were no time forfeits in Arena, only with c-chess-cli. Arena seems to subtract some time to account for its own GUI delays, and that's also how a game with 0m+0 is possible. c-chess-cli is more exact because it doesn't have such lags in the first place.
I see.
I've been tweaking my time management to make the engine use its time more fully. Also I've changed sending stats and curr-move a bit. It's not possible to check for elapsed time in every node. If I do, search speed drops by 75%. Now I do this:
- Check for TimeUp every 2047 nodes.
- Check if 2 seconds have elapsed, since the last +/- 500 million nodes. If so, send stats.
- If in the root, check if 1 second has elapsed after making a legal move, and if so, send "curr_move" and "curr_movenumber".
Now, the engine basically only sends the "info" string for the first 6-8 depths (it reaches depth 6-9 in under 1 second depending on the position; no hash table yet) before it even starts sending curr_move and stats, and they will be sent at a speed of once every 1 or 2 seconds. Seems to work fine. Arena is not slammed with incoming data anymore, and the search speed is basically the same. If there are any differences (there have to be, because the search is now doing more checking), it's impossible to see when watching the knps counter.
In the process, I have also implemented a "-q / -quiet" command line feature. When I start Rustic with this option, the search only outputs the "info" string and leaves out the stats and curr_move/curr_movenumber. Very useful when quickly analyzing a position in the console, when you want to paste the results into a forum, or save them for some reason.
This chess engine thing is coming together rather nicely, surely but slowly

Tips and assistance given by people on this forum are certainly of great help.