Banksia - Yet another Chess Tournament Manager

Discussion of chess software programming and technical issues.

Moderators: hgm, Harvey Williamson, bob

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Ferdy
Posts: 4021
Joined: Sun Aug 10, 2008 1:15 pm
Location: Philippines

Re: Banksia - Yet another Chess Tournament Manager

Post by Ferdy » Wed Jul 31, 2019 3:17 am

phhnguyen wrote:
Tue Jul 30, 2019 1:28 pm
"inclusive players" is used to lock an (or some) engine to matches, including sides. This function can help in your case. To make two engines play again each other which one (engine A) always plays on white side (it is locked to all games and locked to one side), you may edit some fields as below:

Code: Select all

  "base" : 
  {
    "concurrency" : 2,
    "games per pair" : 20,
    "ponder" : false,
    "resumable" : true,
    "type" : "roundrobin"
  },
  
  "inclusive players" : 
  {
    "mode" : true,
    "players" : [ "engine A" ],
    "side" : "white"
  },

  "players" :
  [
      "engine A",
      "engine B"
  ],
For total 20 games ("games per pair") of the round-robin, Banksia will discard 10 games based on the condition in "inclusive players" and play only 10 games. Simply double the number of games you need.

Tip: Sometime I set that number ("games per pair") very large, say 20000 then run it, the tournament may take days to complete. Whenever I want current result, just type from keyboard "status", Banksia will print out that result and I can decide to stop or continue.

To use a PGN opening book:

Code: Select all

      {
        "mode" : true,
        "path" : "your_path_to_pgn_opening",
        "type" : "pgn"
      },
Hope it can help and have fun :D
Tried it but unfortunately it crashed.

Image

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

Re: Banksia - Yet another Chess Tournament Manager

Post by phhnguyen » Wed Jul 31, 2019 5:36 am

Ferdy wrote:
Wed Jul 31, 2019 3:17 am
Tried it but unfortunately it crashed.

Image
Thanks for your feedback.

Unfortunately, I cannot reproduce the crash. Can you give me some more information: What is the Windows version, 32 or 64 bit? How many (real) cores and memory does your computer have?

Please try:
1) make sure the tournament won't take all your computer resources. In general, the total cores/threads which all engines can use should be smaller than the total real cores of your computer.

E.g., if you allow each engine use 2 cores/threads, a pair of engines will use 4 cores, your tournament sets concurrency of 6 (6 pairs play concurrently), thus all may take 4 x 6 = 24 cores. If your computer has more than 24 cores it is fine, otherwise, it is easy to crash.

To control the number of threads/cores and memory for all engines, just edit JSON file (one place only, Banksia will auto set up for all engines regardless they are UCI or Winboard ones):

Code: Select all

  "override options" : 
  {
    "base" : 
    {
      "guide" : "threads (cores), memory (hash), syzygypath (from endgames) will overwrite for any relative options (both UCI and Winboard), memory in MB, set zero/empty to disable them; options will relplace engines' options which are same names and types, 'value' is the most important, others ignored; to avoid some options from specific engines being overridden, add and set field 'overridable' to false for them",
      "mode" : true,
      "memory" : 64,
      "threads" : 1
    },
    "options" : 
You may test with a smaller number of concurrency first, say, set it to 1 or 2 first before increasing it. Verify any unusualness by checking Task Manager.

2) test with popular engines first
Just download and run Banksia with some popular/famous chess engines such as Stockfish, Komodo before testing with your engines.

3) compile and run Banksia from debuggable IDEs such as Visual Studio
Those tools can help us a lot by giving more information about crashes.

Thanks.
https://github.com/nguyenpham/Banksia
An open source C++11 chess tournament manager

Ferdy
Posts: 4021
Joined: Sun Aug 10, 2008 1:15 pm
Location: Philippines

Re: Banksia - Yet another Chess Tournament Manager

Post by Ferdy » Wed Jul 31, 2019 10:05 am

phhnguyen wrote:
Wed Jul 31, 2019 5:36 am

Thanks for your feedback.

Unfortunately, I cannot reproduce the crash. Can you give me some more information: What is the Windows version, 32 or 64 bit? How many (real) cores and memory does your computer have?

Please try:
1) make sure the tournament won't take all your computer resources. In general, the total cores/threads which all engines can use should be smaller than the total real cores of your computer.

E.g., if you allow each engine use 2 cores/threads, a pair of engines will use 4 cores, your tournament sets concurrency of 6 (6 pairs play concurrently), thus all may take 4 x 6 = 24 cores. If your computer has more than 24 cores it is fine, otherwise, it is easy to crash.

To control the number of threads/cores and memory for all engines, just edit JSON file (one place only, Banksia will auto set up for all engines regardless they are UCI or Winboard ones):

Code: Select all

  "override options" : 
  {
    "base" : 
    {
      "guide" : "threads (cores), memory (hash), syzygypath (from endgames) will overwrite for any relative options (both UCI and Winboard), memory in MB, set zero/empty to disable them; options will relplace engines' options which are same names and types, 'value' is the most important, others ignored; to avoid some options from specific engines being overridden, add and set field 'overridable' to false for them",
      "mode" : true,
      "memory" : 64,
      "threads" : 1
    },
    "options" : 
You may test with a smaller number of concurrency first, say, set it to 1 or 2 first before increasing it. Verify any unusualness by checking Task Manager.

2) test with popular engines first
Just download and run Banksia with some popular/famous chess engines such as Stockfish, Komodo before testing with your engines.

3) compile and run Banksia from debuggable IDEs such as Visual Studio
Those tools can help us a lot by giving more information about crashes.

Thanks.
Windows 7 64bit, processor i7 3.4Ghz 4-core (8 threads), 12GB RAM. Engine is single core.

Ferdy
Posts: 4021
Joined: Sun Aug 10, 2008 1:15 pm
Location: Philippines

Re: Banksia - Yet another Chess Tournament Manager

Post by Ferdy » Wed Jul 31, 2019 10:51 am

Pressing debug and run on visual studio, there is integer division by zero.

Image

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

Re: Banksia - Yet another Chess Tournament Manager

Post by phhnguyen » Wed Jul 31, 2019 12:51 pm

Ferdy wrote:
Wed Jul 31, 2019 10:05 am
Windows 7 64bit, processor i7 3.4Ghz 4-core (8 threads), 12GB RAM. Engine is single core.
Ferdy wrote:
Wed Jul 31, 2019 10:51 am
Pressing debug and run on visual studio, there is integer division by zero.

Image
Did you change the value of concurrency? Your computer has 4 cores, thus it can play max 4 single-thread-engines concurrently or 2 games only (concurrency = 2). Your current settings is 6, means 12 engines, too many for your computer.

For first time, you may set concurrency = 1, if everything OK you may increase to 2 later.
https://github.com/nguyenpham/Banksia
An open source C++11 chess tournament manager

Ferdy
Posts: 4021
Joined: Sun Aug 10, 2008 1:15 pm
Location: Philippines

Re: Banksia - Yet another Chess Tournament Manager

Post by Ferdy » Wed Jul 31, 2019 1:58 pm

phhnguyen wrote:
Wed Jul 31, 2019 12:51 pm
Ferdy wrote:
Wed Jul 31, 2019 10:05 am
Windows 7 64bit, processor i7 3.4Ghz 4-core (8 threads), 12GB RAM. Engine is single core.
Ferdy wrote:
Wed Jul 31, 2019 10:51 am
Pressing debug and run on visual studio, there is integer division by zero.

Image
Did you change the value of concurrency? Your computer has 4 cores, thus it can play max 4 single-thread-engines concurrently or 2 games only (concurrency = 2). Your current settings is 6, means 12 engines, too many for your computer.

For first time, you may set concurrency = 1, if everything OK you may increase to 2 later.
I set concurrency to 1.

My computer can handle even up to concurrency 8, at least when I use winboard and cutechess.

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

Re: Banksia - Yet another Chess Tournament Manager

Post by phhnguyen » Wed Jul 31, 2019 2:21 pm

Ferdy wrote:
Wed Jul 31, 2019 1:58 pm
I set concurrency to 1.

My computer can handle even up to concurrency 8, at least when I use winboard and cutechess.
Oh, I see. Amazing your system can run safely with 16 engines at once!

Give me few days for checking since I don't have any Win 7 system at home.
https://github.com/nguyenpham/Banksia
An open source C++11 chess tournament manager

Ferdy
Posts: 4021
Joined: Sun Aug 10, 2008 1:15 pm
Location: Philippines

Re: Banksia - Yet another Chess Tournament Manager

Post by Ferdy » Wed Jul 31, 2019 4:25 pm

phhnguyen wrote:
Wed Jul 31, 2019 2:21 pm
Ferdy wrote:
Wed Jul 31, 2019 1:58 pm
I set concurrency to 1.

My computer can handle even up to concurrency 8, at least when I use winboard and cutechess.
Oh, I see. Amazing your system can run safely with 16 engines at once!

Give me few days for checking since I don't have any Win 7 system at home.
I think I found the issue. Setting moves to 0 is the problem.

Code: Select all

"time control" : 
  {
    "guide" : "unit's second; time: could be a real number (e.g. 6.5 for 6.5s) or a string (e.g. '2:10:30' for 2h 20m 30s); mode: standard, infinite, depth, movetime; margin: an extra delay time before checking if time's over",
    "increment" : 0.5,
    "margin" : 0.8,
    "mode" : "standard",
    "moves" : 0,
    "time" : 60.0
  }
I thought it supports Fischer's clock.


There seems to be an issue on the pgn, there is no empty line between the header and the movetext sections.
[Event "Computer event"]
[Site "Somewhere on Earth"]
[Date "2019.08.01"]
[Round "1"]
[White "Deuterium v2019.2.37.66"]
[Black "Deuterium v2019.2.37.65"]
[Result "1/2-1/2"]
[TimeControl "40/60:0.5"]
[Time "00:26:54"]
[Board "1"]
[Termination "repetition"]
[ECO "A09"]
[Opening "Reti accepted"]
1. Nf3 d5 2. c4 dxc4 3. e3 {A09: Reti accepted} Nf6 {End of opening} 4. Bxc4 e6
5. d4 Nc6 6. O-O Bd6 7. Nc3 O-O 8. e4 e5
9. d5 Ne7 10. h3 h6 11. a4 Ng6 12. Be3 Bd7
13. Qb3 Qe7 14. Rfc1 a5 15. Qc2 Rac8 16. Nb5 Bc5
17. Bxc5 Qxc5 18. Ra3 Qb4 19. Nd2 c6 20. Rb3 Qe7
21. d6 Qd8 22. Na3 Ne8 23. Rxb7 Ra8 24. Bf1 Nxd6
25. Rb3 Qe7 26. g3 Rfd8 27. Rd3 Nb7 28. Nf3 Be6
29. h4 Bg4 30. Nh2 Be6 31. Nc4 Qc7 32. Ne3 Ne7
33. Nf3 Rxd3 34. Bxd3 Rb8 35. Kg2 c5 36. Bc4 Bxc4
37. Qxc4 Rd8 38. Qb3 Nc6 39. Nd5 Qb8 40. Qb5 Rd6
41. Qc4 Qe8 42. Qa6 Qb8 43. Qd3 Qe8 44. Qc4 Qd7
45. Qb3 Nd4 46. Nxd4 exd4 47. f3 Re6 48. Nf4 Rd6
49. Nd3 Qc7 50. h5 Rb6 51. Qd5 Qc6 52. Qc4 g6
53. hxg6 Qxg6 54. Qc2 Qe6 55. g4 Qf6 56. Rh1 Qe6
57. Kg3 c4 58. Nf4 d3 59. Qc3 Qd6 60. g5 Qe7
61. Rh5 Qb4 62. Qe5 Qd6 63. Qe8+ Qf8 64. Qxf8+ Kxf8
65. gxh6 Kg8 66. h7+ Kh8 67. Rh2 Nc5 68. Nd5 Rg6+
69. Kf4 Nxa4 70. Ke5 Nc5 71. Ne3 c3 72. bxc3 Nb3
73. Kd5 d2 74. Kc4 Rb6 75. Rh1 a4 76. Nd5 Rb7
77. Nf6 Rb6 78. Nd5 Rb7 79. Nf6 Rb6 80. Nd5 Rb7
81. Nf6 Rb6 82. Nd5 1/2-1/2

User avatar
Guenther
Posts: 2935
Joined: Wed Oct 01, 2008 4:33 am
Location: Regensburg, Germany
Full name: Guenther Simon
Contact:

Re: Banksia - Yet another Chess Tournament Manager

Post by Guenther » Wed Jul 31, 2019 5:18 pm

Ferdy wrote:
Wed Jul 31, 2019 4:25 pm
[Event "Computer event"]
[Site "Somewhere on Earth"]
[Date "2019.08.01"]
[Round "1"]
[White "Deuterium v2019.2.37.66"]
[Black "Deuterium v2019.2.37.65"]
[Result "1/2-1/2"]
[TimeControl "40/60:0.5"]
[Time "00:26:54"]
[Board "1"]
[Termination "repetition"]
[ECO "A09"]
[Opening "Reti accepted"]
1. Nf3 d5 2. c4 dxc4 3. e3 {A09: Reti accepted} Nf6 {End of opening} 4. Bxc4 e6
5. d4 Nc6 6. O-O Bd6 7. Nc3 O-O 8. e4 e5
9. d5 Ne7 10. h3 h6 11. a4 Ng6 12. Be3 Bd7
13. Qb3 Qe7 14. Rfc1 a5 15. Qc2 Rac8 16. Nb5 Bc5
17. Bxc5 Qxc5 18. Ra3 Qb4 19. Nd2 c6 20. Rb3 Qe7
21. d6 Qd8 22. Na3 Ne8 23. Rxb7 Ra8 24. Bf1 Nxd6
25. Rb3 Qe7 26. g3 Rfd8 27. Rd3 Nb7 28. Nf3 Be6
29. h4 Bg4 30. Nh2 Be6 31. Nc4 Qc7 32. Ne3 Ne7
33. Nf3 Rxd3 34. Bxd3 Rb8 35. Kg2 c5 36. Bc4 Bxc4
37. Qxc4 Rd8 38. Qb3 Nc6 39. Nd5 Qb8 40. Qb5 Rd6
41. Qc4 Qe8 42. Qa6 Qb8 43. Qd3 Qe8 44. Qc4 Qd7
45. Qb3 Nd4 46. Nxd4 exd4 47. f3 Re6 48. Nf4 Rd6
49. Nd3 Qc7 50. h5 Rb6 51. Qd5 Qc6 52. Qc4 g6
53. hxg6 Qxg6 54. Qc2 Qe6 55. g4 Qf6 56. Rh1 Qe6
57. Kg3 c4 58. Nf4 d3 59. Qc3 Qd6 60. g5 Qe7
61. Rh5 Qb4 62. Qe5 Qd6 63. Qe8+ Qf8 64. Qxf8+ Kxf8
65. gxh6 Kg8 66. h7+ Kh8 67. Rh2 Nc5 68. Nd5 Rg6+
69. Kf4 Nxa4 70. Ke5 Nc5 71. Ne3 c3 72. bxc3 Nb3
73. Kd5 d2 74. Kc4 Rb6 75. Rh1 a4 76. Nd5 Rb7
77. Nf6 Rb6 78. Nd5 Rb7 79. Nf6 Rb6 80. Nd5 Rb7
81. Nf6 Rb6 82. Nd5 1/2-1/2
Is this an ordinary pgn produced by Banksia?
I am asking because there is no eval/depth + times - I guess they can be saved?
Current foe list count : [92 - still rising]
http://rwbc-chess.de/chronology.htm

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

Re: Banksia - Yet another Chess Tournament Manager

Post by phhnguyen » Wed Jul 31, 2019 10:26 pm

Ferdy wrote:
Wed Jul 31, 2019 4:25 pm
I think I found the issue. Setting moves to 0 is the problem.
I thought it supports Fischer's clock.
Wow, thanks. It would be not easy to find out.

I will support Fischer's clock for the next release, both for new features and for avoiding that problem.
Ferdy wrote:
Wed Jul 31, 2019 4:25 pm
There seems to be an issue on the pgn, there is no empty line between the header and the movetext sections.
Thanks, fixed for the next release.
https://github.com/nguyenpham/Banksia
An open source C++11 chess tournament manager

Post Reply