Banksia GUI released

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

Moderators: hgm, Rebel, chrisw

User avatar
phhnguyen
Posts: 1434
Joined: Wed Apr 21, 2010 4:58 am
Location: Australia
Full name: Nguyen Hong Pham

Re: Banksia GUI released

Post by phhnguyen »

CMCanavessi wrote: Thu Jul 29, 2021 5:01 pm
Cool, glad to be able to help reporting things. Here's another one: you said that tournament info is saved whenever there's a change in it, but I still don't see it updating after games are played which would imply that if my banksia process that's currently running crashes, or the whole system crashes, I will lose all progress... look at the timestamp of the files and the current time (I left it running overnight, played around 20 games at TC 30m+5s, and still not saved)

Image

I created the tournament at around 22:26, then because of an engine crash i stopped it, reset a game, and hit continue/resume at 22:43... hasn't saved progress since, and it's now noon of the next day.

Edit: I just hit stop, waited a bit, then checked the files and it updated. Then hit continue and it's all good, but still, that should be automatic.
Thank Canavessi for the feedback!

I have checked and found that BSG changed to use some buffers/time delays when I was fighting with the problem of lagging. I have been checking and may convert back to save tournaments more frequently.
https://banksiagui.com
The most features chess GUI, based on opensource Banksia - the chess tournament manager
User avatar
phhnguyen
Posts: 1434
Joined: Wed Apr 21, 2010 4:58 am
Location: Australia
Full name: Nguyen Hong Pham

Re: Banksia GUI released

Post by phhnguyen »

AlexChess wrote: Sat Jul 31, 2021 7:47 am Hi dear phhnguyen!

Another feature request:

In the Windows version, could you make tournament crosstable cells size and backgroung color customizable like in the macOS version? There is room for 4 rounds in the default setting, but so the crosstable becomes very large and I don't find a way to resize cells, excepted importing the full Windows games.pgn on BanksiaGui for Mac (losing engines ELO column) .

Windows 10 version:

Image

macOS version:

Image

Thank you!
Best regards,
AlexChess
..
Thanks for the info. I am not aware that sizes of tables are different on different OSs, just use default values set by the development system (Qt). It will be fixed for the next release.

I still keep your request about the background of those tables in my to-do list from months ago. I even have worked on that already. However, it is not easy and there is no solution for setting transparent for tabs (those tables are actually located on some tabs and those tabs are the main problem) in Windows at the moment. I decided to wait for more support from Qt.
https://banksiagui.com
The most features chess GUI, based on opensource Banksia - the chess tournament manager
User avatar
phhnguyen
Posts: 1434
Joined: Wed Apr 21, 2010 4:58 am
Location: Australia
Full name: Nguyen Hong Pham

Re: Banksia GUI released

Post by phhnguyen »

CMCanavessi wrote: Sat Jul 31, 2021 12:56 am Here is another one, Banksia is playing moves that engines didn't yet send!!

Code: Select all

Ethereal 13.25 > info depth 25 currmove e1f3 currmovenumber 11
Ethereal 13.25 > info depth 25 currmove e2e3 currmovenumber 12
Ethereal 13.25 > info depth 25 currmove a2a3 currmovenumber 13
Ethereal 13.25 > info depth 25 currmove h2h4 currmovenumber 14
Ethereal 13.25 > info depth 25 currmove e1d3 currmovenumber 15
Ethereal 13.25 > info depth 25 currmove g2g4 currmovenumber 16
Ethereal 13.25 > info depth 25 currmove g2g3 currmovenumber 17
Ethereal 13.25 > info depth 25 currmove c2c3 currmovenumber 18
Ethereal 13.25 > info depth 25 currmove a2a4 currmovenumber 19
Ethereal 13.25 > info depth 25 currmove h2h3 currmovenumber 20
Ethereal 13.25 > info depth 25 seldepth 36 multipv 1 score cp 19 time 53672 nodes 41524100 nps 773000 tbhits 0 hashfull 47 pv f1g1 f8g8 h1g3 b7b6 c2c4 e7e6 b2b3 h8g6 e2e4 c8b7 d1c2 d8f6 c1b2 f6b2 a1b2 e8f6 e4e5 f6e4 c2e4 b7e4 g3e4 a8e4 d2d4 e4b7 b2e2 c7c5
Ethereal 13.25 > info depth 26 currmove f1g1 currmovenumber 1
RubiChess 2.2 < isready
RubiChess 2.2 > readyok
Ethereal 13.25 < isready
RubiChess 2.2 < isready
RubiChess 2.2 > readyok
banksia > Error: Ethereal 13.25 stalled too long or crashed. Stopped!
Ethereal 13.25 < position fen qrbbnkrn/pppppppp/8/8/8/8/PPPPPPPP/QRBBNKRN w GBgb - 0 1 moves f1g1 f8g8
Ethereal 13.25 < go ponder wtime 1686464 btime 1800000 winc 5000 binc 5000
RubiChess 2.2 < position fen qrbbnkrn/pppppppp/8/8/8/8/PPPPPPPP/QRBBNKRN w GBgb - 0 1 moves f1g1
RubiChess 2.2 < go wtime 1686464 btime 1800000 winc 5000 binc 5000
Ethereal 13.25 > readyok
Ethereal 13.25 > info depth 1 seldepth 1 multipv 1 score cp 13 time 0 nodes 5 nps 5000 tbhits 0 hashfull 0 pv h1g3
Ethereal 13.25 > info depth 2 seldepth 2 multipv 1 score cp 13 time 0 nodes 17 nps 17000 tbhits 0 hashfull 0 pv h1g3 h8g6
Ethereal 13.25 > info depth 3 seldepth 3 multipv 1 score cp 13 time 0 nodes 39 nps 39000 tbhits 0 hashfull 0 pv h1g3 h8g6 c2c4
Ethereal 13.25 > info depth 4 seldepth 5 multipv 1 score cp 21 time 0 nodes 164 nps 164000 tbhits 0 hashfull 0 pv b2b3 h8g6 e2e3 b7b6
Ethereal 13.25 > info depth 5 seldepth 6 multipv 1 score cp 12 time 0 nodes 500 nps 500000 tbhits 0 hashfull 0 pv b2b3 h8g6 c1b2 c7c5 h1g3
Ethereal 13.25 > info depth 6 seldepth 7 multipv 1 score cp 19 time 0 nodes 773 nps 773000 tbhits 0 hashfull 0 pv b2b3 h8g6 h1g3 e7e5 e2e4 d7d6
RubiChess 2.2 > info depth 1 seldepth 2 multipv 1 time 0 score cp -18 nodes 20 nps 0 tbhits 0 hashfull 0 pv f8g8
Ethereal 13.25 > info depth 7 seldepth 8 multipv 1 score cp 13 time 0 nodes 1152 nps 1152000 tbhits 0 hashfull 0 pv h1g3 h8g6 c2c4 b7b5 b2b3 b5c4 b3c4
RubiChess 2.2 > info depth 2 seldepth 3 multipv 1 time 0 score cp -14 nodes 44 nps 0 tbhits 0 hashfull 0 pv f8g8 h1g3
RubiChess 2.2 > info depth 3 seldepth 4 multipv 1 time 0 score cp 7 nodes 77 nps 0 tbhits 0 hashfull 0 pv f8g8 h1g3 h8g6
Ethereal 13.25 > info depth 8 seldepth 9 multipv 1 score cp 13 time 0 nodes 1606 nps 1606000 tbhits 0 hashfull 0 pv h1g3 h8g6 c2c4 b7b5 b2b3 b5c4 b3c4 b8b1
RubiChess 2.2 > info depth 4 seldepth 4 multipv 1 time 0 score cp 7 nodes 106 nps 0 tbhits 0 hashfull 0 pv f8g8 h1g3 h8g6
RubiChess 2.2 > info depth 5 seldepth 5 multipv 1 time 0 score cp 46 nodes 151 nps 0 tbhits 0 hashfull 0 pv f8g8 h1g3 h8g6 a2a3
RubiChess 2.2 > info depth 6 seldepth 6 multipv 1 time 1 score cp 36 nodes 395 nps 0 tbhits 0 hashfull 0 pv f8g8 h1g3 h8g6 b2b3
In this case, Banksia thought that Ethereal had crashed (it had NOT!!, just took some time while busy to answer the "isready" command) so it just took it's last move on the info string and played it, even when Ethereal was still thinking.
As I have mentioned about that issue on the topic http://talkchess.com/forum3/viewtopic.php?f=7&t=77835, BanksiaGUI has a threshold of total 70s waiting for engines for their output. If an engine doesn't say anything within 30s, BSG will send ping or isready to check if it is still "alive" then wait for another period of 40s. If the engine is still silent, BSG will rule that engine as being crashed and game over.

Whenever a game is completed (over), BSG starts a multi-step process to destroy involving engines. It includes sending "stop", "quit" to them, detach the logging system, input, output streams, stop some threads which are used to manage those engines... It can't simply and/or violently terminate engines since that may cause more engines to resist and stay, continuing to take resources. At that moment you may see some engines print out something even the bestmove (because of the command "stop"). But that is too late.

We may push the threshold longer to save some engines, but the root of the problem is still there: some engines don't reply to the command ping/isready within a reasonable time.
Last edited by phhnguyen on Sat Jul 31, 2021 3:47 pm, edited 1 time in total.
https://banksiagui.com
The most features chess GUI, based on opensource Banksia - the chess tournament manager
Chessqueen
Posts: 5577
Joined: Wed Sep 05, 2018 2:16 am
Location: Moving
Full name: Jorge Picado

Re: Banksia GUI released

Post by Chessqueen »

phhnguyen wrote: Sat Jul 31, 2021 3:43 pm
CMCanavessi wrote: Sat Jul 31, 2021 12:56 am Here is another one, Banksia is playing moves that engines didn't yet send!!

Code: Select all

Ethereal 13.25 > info depth 25 currmove e1f3 currmovenumber 11
Ethereal 13.25 > info depth 25 currmove e2e3 currmovenumber 12
Ethereal 13.25 > info depth 25 currmove a2a3 currmovenumber 13
Ethereal 13.25 > info depth 25 currmove h2h4 currmovenumber 14
Ethereal 13.25 > info depth 25 currmove e1d3 currmovenumber 15
Ethereal 13.25 > info depth 25 currmove g2g4 currmovenumber 16
Ethereal 13.25 > info depth 25 currmove g2g3 currmovenumber 17
Ethereal 13.25 > info depth 25 currmove c2c3 currmovenumber 18
Ethereal 13.25 > info depth 25 currmove a2a4 currmovenumber 19
Ethereal 13.25 > info depth 25 currmove h2h3 currmovenumber 20
Ethereal 13.25 > info depth 25 seldepth 36 multipv 1 score cp 19 time 53672 nodes 41524100 nps 773000 tbhits 0 hashfull 47 pv f1g1 f8g8 h1g3 b7b6 c2c4 e7e6 b2b3 h8g6 e2e4 c8b7 d1c2 d8f6 c1b2 f6b2 a1b2 e8f6 e4e5 f6e4 c2e4 b7e4 g3e4 a8e4 d2d4 e4b7 b2e2 c7c5
Ethereal 13.25 > info depth 26 currmove f1g1 currmovenumber 1
RubiChess 2.2 < isready
RubiChess 2.2 > readyok
Ethereal 13.25 < isready
RubiChess 2.2 < isready
RubiChess 2.2 > readyok
banksia > Error: Ethereal 13.25 stalled too long or crashed. Stopped!
Ethereal 13.25 < position fen qrbbnkrn/pppppppp/8/8/8/8/PPPPPPPP/QRBBNKRN w GBgb - 0 1 moves f1g1 f8g8
Ethereal 13.25 < go ponder wtime 1686464 btime 1800000 winc 5000 binc 5000
RubiChess 2.2 < position fen qrbbnkrn/pppppppp/8/8/8/8/PPPPPPPP/QRBBNKRN w GBgb - 0 1 moves f1g1
RubiChess 2.2 < go wtime 1686464 btime 1800000 winc 5000 binc 5000
Ethereal 13.25 > readyok
Ethereal 13.25 > info depth 1 seldepth 1 multipv 1 score cp 13 time 0 nodes 5 nps 5000 tbhits 0 hashfull 0 pv h1g3
Ethereal 13.25 > info depth 2 seldepth 2 multipv 1 score cp 13 time 0 nodes 17 nps 17000 tbhits 0 hashfull 0 pv h1g3 h8g6
Ethereal 13.25 > info depth 3 seldepth 3 multipv 1 score cp 13 time 0 nodes 39 nps 39000 tbhits 0 hashfull 0 pv h1g3 h8g6 c2c4
Ethereal 13.25 > info depth 4 seldepth 5 multipv 1 score cp 21 time 0 nodes 164 nps 164000 tbhits 0 hashfull 0 pv b2b3 h8g6 e2e3 b7b6
Ethereal 13.25 > info depth 5 seldepth 6 multipv 1 score cp 12 time 0 nodes 500 nps 500000 tbhits 0 hashfull 0 pv b2b3 h8g6 c1b2 c7c5 h1g3
Ethereal 13.25 > info depth 6 seldepth 7 multipv 1 score cp 19 time 0 nodes 773 nps 773000 tbhits 0 hashfull 0 pv b2b3 h8g6 h1g3 e7e5 e2e4 d7d6
RubiChess 2.2 > info depth 1 seldepth 2 multipv 1 time 0 score cp -18 nodes 20 nps 0 tbhits 0 hashfull 0 pv f8g8
Ethereal 13.25 > info depth 7 seldepth 8 multipv 1 score cp 13 time 0 nodes 1152 nps 1152000 tbhits 0 hashfull 0 pv h1g3 h8g6 c2c4 b7b5 b2b3 b5c4 b3c4
RubiChess 2.2 > info depth 2 seldepth 3 multipv 1 time 0 score cp -14 nodes 44 nps 0 tbhits 0 hashfull 0 pv f8g8 h1g3
RubiChess 2.2 > info depth 3 seldepth 4 multipv 1 time 0 score cp 7 nodes 77 nps 0 tbhits 0 hashfull 0 pv f8g8 h1g3 h8g6
Ethereal 13.25 > info depth 8 seldepth 9 multipv 1 score cp 13 time 0 nodes 1606 nps 1606000 tbhits 0 hashfull 0 pv h1g3 h8g6 c2c4 b7b5 b2b3 b5c4 b3c4 b8b1
RubiChess 2.2 > info depth 4 seldepth 4 multipv 1 time 0 score cp 7 nodes 106 nps 0 tbhits 0 hashfull 0 pv f8g8 h1g3 h8g6
RubiChess 2.2 > info depth 5 seldepth 5 multipv 1 time 0 score cp 46 nodes 151 nps 0 tbhits 0 hashfull 0 pv f8g8 h1g3 h8g6 a2a3
RubiChess 2.2 > info depth 6 seldepth 6 multipv 1 time 1 score cp 36 nodes 395 nps 0 tbhits 0 hashfull 0 pv f8g8 h1g3 h8g6 b2b3
In this case, Banksia thought that Ethereal had crashed (it had NOT!!, just took some time while busy to answer the "isready" command) so it just took it's last move on the info string and played it, even when Ethereal was still thinking.
As I have mentioned about that issue on the topic http://talkchess.com/forum3/viewtopic.php?f=7&t=77835, BanksiaGUI has a threshold of total 70s waiting for engines for their output. If an engine doesn't say anything within 30s, BSG will send ping or isready to check if it is still "alive" then wait for another period of 40s. If the engine is still silent, BSG will rule that engine as being crashed and game over.

Whenever a game is completed (over), BSG starts a multi-step process to destroy involving engines. It includes sending "stop", "quit" to them, detach the logging system, input, output streams, stop some threads which are used to manage those engines... It can't simply and/or violently terminate engines since that may cause more engines to resist and stay, continuing to take resources. At that moment you may see some engines print out something even the bestmove (because of the command "stop"). But that is too late.

We may push the threshold longer to save some engines, but the root of the problem is still there: some engines don't reply to the command ping/isready in a reasonable period.
Is there an option to download Banksia Gui with preinstall 5 to 6 men endgame :?:
Do NOT worry and be happy, we all live a short life :roll:
User avatar
phhnguyen
Posts: 1434
Joined: Wed Apr 21, 2010 4:58 am
Location: Australia
Full name: Nguyen Hong Pham

Re: Banksia GUI released

Post by phhnguyen »

Chessqueen wrote: Sat Jul 31, 2021 3:44 pm
Is there an option to download Banksia Gui with preinstall 5 to 6 men endgame :?:
No, BSG doesn't release with any endgame file. Banksia GUI website doesn't have any of them either. However, it has a function/dialog box to help users from selecting, downloading, verifying Syzygy endgames (which are located on some external sites).

Image
https://banksiagui.com
The most features chess GUI, based on opensource Banksia - the chess tournament manager
User avatar
CMCanavessi
Posts: 1142
Joined: Thu Dec 28, 2017 4:06 pm
Location: Argentina

Re: Banksia GUI released

Post by CMCanavessi »

phhnguyen wrote: Sat Jul 31, 2021 3:43 pm We may push the threshold longer to save some engines, but the root of the problem is still there: some engines don't reply to the command ping/isready within a reasonable time.
Yes, fully agree. An idea that may help would be to make the threshold depend on the time control. Of course if you play very short games the current 30 + 40 seconds will not matter, as it will never be reached (and that's ok with me), but when playing LTC games some moves can take 10 minutes or more, and in that case, the engine might be silent for quite a while and 30+40 may be too short. So perhaps use 30+40 with up to a certaint time left to move, and past that value, adjust it as a % of the remaining time?
Anyways, it's as you said, if engines behave well and answer instantly to the isready command, none of this matters at all.

There is another thing though, that I want to ask you. Can you include timestamps (down to the milisecond maybe?) in the engine's log file? Cause I saw this:

Code: Select all

RubiChess 2.2 < uci
Ethereal 13.25 < uci
RubiChess 2.2 > info string Allocation of memory uses large pages.
RubiChess 2.2 > info string Loading net nn-fb50f1a2b1-20210705.nnue ... successful. Using NNUE evaluation. (1)
RubiChess 2.2 > id name RubiChess 2.2 NN-fb50f (avx2)
RubiChess 2.2 > id author Andreas Matthies
RubiChess 2.2 > option name Allow Large Pages type check default true
RubiChess 2.2 > option name BookBestMove type check default true
RubiChess 2.2 > option name BookDepth type spin default 255 min 0 max 255
RubiChess 2.2 > option name BookFile type string default <empty>
RubiChess 2.2 > option name Clear Hash type button
RubiChess 2.2 > option name Hash type spin default 16 min 1 max 1048576
RubiChess 2.2 > option name Move Overhead type spin default 50 min 0 max 5000
RubiChess 2.2 > option name MultiPV type spin default 1 min 1 max 64
RubiChess 2.2 > option name NNUENetpath type string default <Default>
RubiChess 2.2 > option name Ponder type check default false
RubiChess 2.2 > option name Syzygy50MoveRule type check default true
RubiChess 2.2 > option name SyzygyPath type string default <empty>
RubiChess 2.2 > option name SyzygyProbeLimit type spin default 7 min 0 max 7
RubiChess 2.2 > option name Threads type spin default 1 min 1 max 256
RubiChess 2.2 > option name UCI_Chess960 type check default false
RubiChess 2.2 > option name Use_NNUE type check default true
RubiChess 2.2 > uciok
RubiChess 2.2 < setoption name Hash value 4096
RubiChess 2.2 < setoption name Ponder value true
RubiChess 2.2 < setoption name SyzygyPath value D:\Tablebases\Syzygy
RubiChess 2.2 < setoption name UCI_Chess960 value true
RubiChess 2.2 < isready
Ethereal 13.25 > id name Ethereal 13.25 (NNUE)
Ethereal 13.25 > id author Andrew Grant, Alayan & Laldon
Ethereal 13.25 > option name Hash type spin default 16 min 2 max 131072
Ethereal 13.25 > option name Threads type spin default 1 min 1 max 2048
Ethereal 13.25 > option name EvalFile type string default <empty>
Ethereal 13.25 > option name MultiPV type spin default 1 min 1 max 256
Ethereal 13.25 > option name MoveOverhead type spin default 300 min 0 max 10000
Ethereal 13.25 > option name SyzygyPath type string default <empty>
Ethereal 13.25 > option name SyzygyProbeDepth type spin default 0 min 0 max 127
Ethereal 13.25 > option name Ponder type check default false
Ethereal 13.25 > option name AnalysisMode type check default false
Ethereal 13.25 > option name UCI_Chess960 type check default false
Ethereal 13.25 > info string licensed to CCLS_Testing
Ethereal 13.25 > uciok
Ethereal 13.25 < setoption name Hash value 4096
Ethereal 13.25 < setoption name SyzygyPath value D:\Tablebases\Syzygy
Ethereal 13.25 < setoption name Ponder value true
Ethereal 13.25 < setoption name UCI_Chess960 value true
Ethereal 13.25 < isready
Ethereal 13.25 > info string set Hash to 4096MB
Ethereal 13.25 > info string Found 510 WDL, 0 DTM and 510 DTZ tablebase files. Largest 6-men
Ethereal 13.25 > info string set SyzygyPath to D:\Tablebases\Syzygy
Ethereal 13.25 > info string set UCI_Chess960 to true
Ethereal 13.25 > readyok
RubiChess 2.2 < ucinewgame
Ethereal 13.25 < ucinewgame
RubiChess 2.2 > info string Found 510 (254 pawn-less / 256 with pawn) tablebases.
RubiChess 2.2 > readyok
Ethereal 13.25 < position fen qrbbnkrn/pppppppp/8/8/8/8/PPPPPPPP/QRBBNKRN w GBgb - 0 1
Ethereal 13.25 < go wtime 1800000 btime 1800000 winc 5000 binc 5000
Ethereal 13.25 > info depth 1 seldepth 1 multipv 1 score cp 66 time 16 nodes 6 nps 0 tbhits 0 hashfull 0 pv f1g1
Ethereal 13.25 > info depth 2 seldepth 2 multipv 1 score cp 33 time 16 nodes 20 nps 1000 tbhits 0 hashfull 0 pv f1g1 f8g8
Ethereal 13.25 > info depth 3 seldepth 4 multipv 1 score cp 6 time 16 nodes 102 nps 6000 tbhits 0 hashfull 0 pv d2d4 f8g8 f1g1
Ethereal 13.25 > info depth 4 seldepth 4 multipv 1 score cp 41 time 16 nodes 234 nps 13000 tbhits 0 hashfull 0 pv f1g1 f8g8 b2b3 h8g6
That is from the start of the same Rubi Vs. Ethereal game. Forget about Ethereal and look only at Rubi, you'll see this:

Code: Select all

RubiChess 2.2 < setoption name Hash value 4096
RubiChess 2.2 < setoption name Ponder value true
RubiChess 2.2 < setoption name SyzygyPath value D:\Tablebases\Syzygy
RubiChess 2.2 < setoption name UCI_Chess960 value true
RubiChess 2.2 < isready
RubiChess 2.2 < ucinewgame
RubiChess 2.2 > info string Found 510 (254 pawn-less / 256 with pawn) tablebases.
RubiChess 2.2 > readyok
Is the ucinewgame really sent before RubiChess says readyok after it has finished initializing the TBs, or is the log file messing with the order of the lines because it all happens very fast?
Follow my tournament and some Leela gauntlets live at http://twitch.tv/ccls
User avatar
phhnguyen
Posts: 1434
Joined: Wed Apr 21, 2010 4:58 am
Location: Australia
Full name: Nguyen Hong Pham

Re: Banksia GUI released

Post by phhnguyen »

CMCanavessi wrote: Sat Jul 31, 2021 5:55 pm There is another thing though, that I want to ask you. Can you include timestamps (down to the milisecond maybe?) in the engine's log file? Cause I saw this:

Code: Select all

RubiChess 2.2 < uci
Ethereal 13.25 < uci
RubiChess 2.2 > info string Allocation of memory uses large pages.
RubiChess 2.2 > info string Loading net nn-fb50f1a2b1-20210705.nnue ... successful. Using NNUE evaluation. (1)
RubiChess 2.2 > id name RubiChess 2.2 NN-fb50f (avx2)
RubiChess 2.2 > id author Andreas Matthies
RubiChess 2.2 > option name Allow Large Pages type check default true
RubiChess 2.2 > option name BookBestMove type check default true
RubiChess 2.2 > option name BookDepth type spin default 255 min 0 max 255
RubiChess 2.2 > option name BookFile type string default <empty>
RubiChess 2.2 > option name Clear Hash type button
RubiChess 2.2 > option name Hash type spin default 16 min 1 max 1048576
RubiChess 2.2 > option name Move Overhead type spin default 50 min 0 max 5000
RubiChess 2.2 > option name MultiPV type spin default 1 min 1 max 64
RubiChess 2.2 > option name NNUENetpath type string default <Default>
RubiChess 2.2 > option name Ponder type check default false
RubiChess 2.2 > option name Syzygy50MoveRule type check default true
RubiChess 2.2 > option name SyzygyPath type string default <empty>
RubiChess 2.2 > option name SyzygyProbeLimit type spin default 7 min 0 max 7
RubiChess 2.2 > option name Threads type spin default 1 min 1 max 256
RubiChess 2.2 > option name UCI_Chess960 type check default false
RubiChess 2.2 > option name Use_NNUE type check default true
RubiChess 2.2 > uciok
RubiChess 2.2 < setoption name Hash value 4096
RubiChess 2.2 < setoption name Ponder value true
RubiChess 2.2 < setoption name SyzygyPath value D:\Tablebases\Syzygy
RubiChess 2.2 < setoption name UCI_Chess960 value true
RubiChess 2.2 < isready
Ethereal 13.25 > id name Ethereal 13.25 (NNUE)
Ethereal 13.25 > id author Andrew Grant, Alayan & Laldon
Ethereal 13.25 > option name Hash type spin default 16 min 2 max 131072
Ethereal 13.25 > option name Threads type spin default 1 min 1 max 2048
Ethereal 13.25 > option name EvalFile type string default <empty>
Ethereal 13.25 > option name MultiPV type spin default 1 min 1 max 256
Ethereal 13.25 > option name MoveOverhead type spin default 300 min 0 max 10000
Ethereal 13.25 > option name SyzygyPath type string default <empty>
Ethereal 13.25 > option name SyzygyProbeDepth type spin default 0 min 0 max 127
Ethereal 13.25 > option name Ponder type check default false
Ethereal 13.25 > option name AnalysisMode type check default false
Ethereal 13.25 > option name UCI_Chess960 type check default false
Ethereal 13.25 > info string licensed to CCLS_Testing
Ethereal 13.25 > uciok
Ethereal 13.25 < setoption name Hash value 4096
Ethereal 13.25 < setoption name SyzygyPath value D:\Tablebases\Syzygy
Ethereal 13.25 < setoption name Ponder value true
Ethereal 13.25 < setoption name UCI_Chess960 value true
Ethereal 13.25 < isready
Ethereal 13.25 > info string set Hash to 4096MB
Ethereal 13.25 > info string Found 510 WDL, 0 DTM and 510 DTZ tablebase files. Largest 6-men
Ethereal 13.25 > info string set SyzygyPath to D:\Tablebases\Syzygy
Ethereal 13.25 > info string set UCI_Chess960 to true
Ethereal 13.25 > readyok
RubiChess 2.2 < ucinewgame
Ethereal 13.25 < ucinewgame
RubiChess 2.2 > info string Found 510 (254 pawn-less / 256 with pawn) tablebases.
RubiChess 2.2 > readyok
Ethereal 13.25 < position fen qrbbnkrn/pppppppp/8/8/8/8/PPPPPPPP/QRBBNKRN w GBgb - 0 1
Ethereal 13.25 < go wtime 1800000 btime 1800000 winc 5000 binc 5000
Ethereal 13.25 > info depth 1 seldepth 1 multipv 1 score cp 66 time 16 nodes 6 nps 0 tbhits 0 hashfull 0 pv f1g1
Ethereal 13.25 > info depth 2 seldepth 2 multipv 1 score cp 33 time 16 nodes 20 nps 1000 tbhits 0 hashfull 0 pv f1g1 f8g8
Ethereal 13.25 > info depth 3 seldepth 4 multipv 1 score cp 6 time 16 nodes 102 nps 6000 tbhits 0 hashfull 0 pv d2d4 f8g8 f1g1
Ethereal 13.25 > info depth 4 seldepth 4 multipv 1 score cp 41 time 16 nodes 234 nps 13000 tbhits 0 hashfull 0 pv f1g1 f8g8 b2b3 h8g6
In default mode, the engine log should have timestamps as below:

Code: Select all

3.09:29:02 Komodo 12.1.1 64-bit> info depth 15 time 216 nodes 391553 nps 1812744 hashfull 85
2.09:29:02 asmFishX_9_base> info depth 3 seldepth 3 multipv 1 time 0 nps 107000 score cp 456 nodes 107 tbhits 0 pv f1c4 b7b6 c4d5
2.09:29:02 asmFishX_9_base> info depth 4 seldepth 4 multipv 1 time 1 nps 346000 score cp 232 nodes 346 tbhits 0 pv c3c4 e7e6 c4d5 e6d5
2.09:29:02 asmFishX_9_base> info depth 5 seldepth 5 multipv 1 time 2 nps 483500 score cp 40 nodes 967 tbhits 0 pv f1b5 d5f4 e1g1 d7d6 g1h1
2.09:29:02 asmFishX_9_base> info depth 6 seldepth 6 multipv 1 time 3 nps 815666 score cp 130 nodes 2447 tbhits 0 pv f1b5 f8g7 a3c4 d7d6 d2d4 d6e5 f3e5 c5d4
3.09:29:02 Honey XIr4> info depth 15 seldepth 23 multipv 1 score cp -31 nodes 286856 nps 1399297 tbhits 0 time 205 pv f8g7 f1c4 e8g8 g1e2 c7c5 e1g1 b8c6 c1e3 c5d4 c3d4 b7b6 a1c1 c8b7 d4d5 c6a5 c4d3 e7e6 d5e6 f7e6 f2f4
2.09:29:02 asmFishX_9_base> info depth 7 seldepth 7 multipv 1 time 5 nps 761000 score cp 97 nodes 3805 tbhits 0 pv f1c4 d5b6 e1g1 d7d5 e5d6 d8d6 d2d4
1.09:29:02 Honey XIr4> info depth 8 seldepth 11 multipv 1 score cp 43 nodes 9259 nps 925900 tbhits 0 time 10 pv d1e2 d6e5 d4e5 b8c6 d3b5 e8f8 b5c6 b7c6 b1c3
2.09:29:02 asmFishX_9_base> info depth 8 seldepth 8 multipv 1 time 8 nps 1121875 score cp 58 nodes 8975 tbhits 0 pv f1b5 a7a6 b5a4 d5b6 d2d4 b6a4 d1a4 d7d6
1.09:29:02 Honey XIr4> info depth 9 seldepth 13 multipv 1 score cp 43 nodes 15135 nps 1081071 tbhits 0 time 14 pv d1h5 g7g6 h5f3 d6e5 d4e5 c8e6 b1c3 e4c3 b2c3 b8c6 f3e3 h7h5

Not sure how come your engine log doesn't have that.

BTW, BSG doesn't have any visual/graphic way to on/off log's timestamp. Instead, you need to modify the file banksiamain.json and banksiatour.json. Find "logs" and set the item "show time" to true:

Code: Select all

  "logs" : 
  {
    "db" : 
    {
      "mode" : false,
      "path" : "/Users/nguyenpham/tourdb.bgdb"
    },
    "engine" : 
    {
      "game title surfix" : true,
      "mode" : true,
      "one file" : true,
      "path" : "/Users/nguyenpham/logengins.txt",
      "separate by sides" : false,
      "show time" : true
    },
    "mode" : true,
    "pgn" : 
    {
...
CMCanavessi wrote: Sat Jul 31, 2021 5:55 pm
That is from the start of the same Rubi Vs. Ethereal game. Forget about Ethereal and look only at Rubi, you'll see this:

Code: Select all

RubiChess 2.2 < setoption name Hash value 4096
RubiChess 2.2 < setoption name Ponder value true
RubiChess 2.2 < setoption name SyzygyPath value D:\Tablebases\Syzygy
RubiChess 2.2 < setoption name UCI_Chess960 value true
RubiChess 2.2 < isready
RubiChess 2.2 < ucinewgame
RubiChess 2.2 > info string Found 510 (254 pawn-less / 256 with pawn) tablebases.
RubiChess 2.2 > readyok
Is the ucinewgame really sent before RubiChess says readyok after it has finished initializing the TBs, or is the log file messing with the order of the lines because it all happens very fast?
For BSG, isready/readyok are just ping/pong commands for checking the "aliveness" of engines. Thus it won't wait for readyok, just send new commands as the game controller wants. The first "isready" is not really necessary but sent by some suggestion/experience since some engines may need that to complete their initializations and the redundancy is not harmful.

In fact, BSG doesn't care if an engine ignores to reply back by readyok but it really worries if the engine is silent longer than the threshold and those commands are just a tool to force the engine to talk back.
https://banksiagui.com
The most features chess GUI, based on opensource Banksia - the chess tournament manager
User avatar
CMCanavessi
Posts: 1142
Joined: Thu Dec 28, 2017 4:06 pm
Location: Argentina

Re: Banksia GUI released

Post by CMCanavessi »

phhnguyen wrote: Sun Aug 01, 2021 5:22 am ..
Look at this:

Image


How is the ponderhit ratio calculated? (BTW can it be shown permanently? It's very difficult to see on short time control games, and it only shows when engines get a ponderhit. If they don't, it's not shown for that move. Also, it would be cool to show the move it's currently pondering to see if it will guess it or not depending on the rival's pv.)

In this case, Ethereal guessed Stockfish move 1 out of 3. It should be 33%. Even more, it's can't be 25% in any way you put it. 0/3, 1/3, 2/3 and 3/3 are then only possible combinations, and none of those give 25% :mrgreen:

It should be number of ponderhits / (current move number - 1), because neither color can ponder on move 1, and to avoid "divide by zero" crap, it should only be shown/calculated starting on move 2.
Follow my tournament and some Leela gauntlets live at http://twitch.tv/ccls
User avatar
AdminX
Posts: 6339
Joined: Mon Mar 13, 2006 2:34 pm
Location: Acworth, GA

Re: Banksia GUI released

Post by AdminX »

I am in the process of upgrading my Raspberry Pi 4 8GB model with a SSD and a new case. I just installed Ubuntu Mate on it. Then the thought hit me, how difficult would it be to port Banksia over so that it could run on a Arm processor? :shock: I am also in the process of installing Picochess on it, so in theory I should be able use all engines created to run on Arm processors in Banksia also if it were ported to Arm. Keep hope alive! :D This is just a thought, not a request yet ... :lol: :lol: :lol:
Last edited by AdminX on Sun Aug 01, 2021 9:24 pm, edited 1 time in total.
"Good decisions come from experience, and experience comes from bad decisions."
__________________________________________________________________
Ted Summers
User avatar
CMCanavessi
Posts: 1142
Joined: Thu Dec 28, 2017 4:06 pm
Location: Argentina

Re: Banksia GUI released

Post by CMCanavessi »

Can you run it with something like wine?
Follow my tournament and some Leela gauntlets live at http://twitch.tv/ccls