Dan Cooper wrote:First, thanks for this tournament manager.
Now a couple of bug reports:
1) At very fast tc, pretty much anything faster than 60 seconds, cutechess seems to instantiate too many concurrent games. I usually run with concurrency = 8, and after a few rounds I'll notice my CPU spike to 99% and there are 10+ games running. Then it doesn't start new games after the count gets under 8. It waits until all current games finish before starting another 8. I don't notice this type of behavior when running longer tc, such as 3M+2. I constantly see 8 instances running until there are less than 8 games remaining in the tournament.
Thanks for the report. Which OS do you use? And have you been able to reproduce this bug with concurrency values below 8? And how long (how many games) do you usually have to wait before you see this bug? I should be able to find out from analyzing the code how this could happen but it would help if the bug was easily reproducible.
2) Engines that use 6-man Nalimov take a long time to initialize and cutechess terminates the game before it starts. I've seen this behavior with Crafty, ExChess and Protector. All of my egtb are on SSD.
The timeout for starting the chess protocol is too low then. I'll increase it or at least make it configurable via command-line. How long does it usually take to fully load one of these engines?
I have a couple of feature requests also:
1) Can the draw adjudication rules offer an option like TCEC IE pawn pushes and captures resets the adjudication counter?
TCEC is using their own fork of cutechess-cli with the adjudication rule you mentioned. I can add that to the next non-patch release.
2) Can support for TLCV broadcasting be added? Ideally, it would generate a uniquely named text file based on the concurrency setting.
We've found all current broadcasting options to be very inadequate so we're actually writing our own implementation for both client and server-side. It's going to take a while to finish though.
3) Support for interrupting and restarting tournaments.
That's also planned. The TCEC fork already has that but it's not a very clean implementation.