For coming versions I have been working on a special function to auto generate Json files which are mainly used to configure engines and control tournaments.
Hope to get some feedbacks / bug reports from you soon

Moderators: hgm, Dann Corbit, Harvey Williamson
Code: Select all
banksia -u -c 4 -d c:\allenginefolder
Code: Select all
[
{ "command" : "d:/stockfish/stockfish.exe" },
{ "command" : "c:/match/crafty25.3" }
]
Code: Select all
banksia -jsonpath c:\tour.json
Code: Select all
C:\match>banksia -jsonpath tour.json -no -profile
Banksia, Chess Tournament Manager, by Nguyen Pham - version 3.0
Warning: profile mode is on.
Opening book items: 44624, selection: allnew; Syzygy endgames: 145, missing: 0;
type: roundrobin, timer: 40/20:0.5, players: 3, games per pair: 2, matches: 6, concurrency: 1, ponder: off, book: on
pgn: c:\match\logs\games.pgn, on
result: c:\match\logs\logresult.txt, on
engines: c:\match\logs\logengine.txt, on
1. Komodo 10 64-bit vs Crafty-25.2
1) Komodo 10 64-bit vs Crafty-25.2, #109, 1-0 (mate)
Komodo 10 64-bit: cpu%: 4.7, think: 9.3, mem(MB): 125, max: 125, threads: 2, max: 3
Crafty-25.2: cpu%: 5.8, think: 12.5, mem(MB): 63, max: 69, threads: 1, max: 3
2. Crafty-25.2 vs Komodo 10 64-bit
2) Crafty-25.2 vs Komodo 10 64-bit, #210, 1/2-1/2 (repetition)
Crafty-25.2: cpu%: 5.8, think: 12.4, mem(MB): 64, max: 69, threads: 1, max: 3
Komodo 10 64-bit: cpu%: 5.6, think: 11.8, mem(MB): 126, max: 226, threads: 2, max: 3
3. Crafty-25.2 vs Stockfish 10 64
3) Crafty-25.2 vs Stockfish 10 64, #101, 0-1 (adjudication)
Crafty-25.2: cpu%: 6.0, think: 12.4, mem(MB): 64, max: 69, threads: 1, max: 4
Stockfish 10 64: cpu%: 5.8, think: 12.2, mem(MB): 75, max: 76, threads: 3, max: 4
4. Stockfish 10 64 vs Crafty-25.2
4) Stockfish 10 64 vs Crafty-25.2, #127, 1-0 (mate)
Stockfish 10 64: cpu%: 5.4, think: 10.8, mem(MB): 75, max: 76, threads: 3, max: 4
Crafty-25.2: cpu%: 5.8, think: 11.8, mem(MB): 63, max: 69, threads: 1, max: 4
5. Stockfish 10 64 vs Komodo 10 64-bit
5) Stockfish 10 64 vs Komodo 10 64-bit, #130, 1-0 (adjudication)
Stockfish 10 64: cpu%: 5.8, think: 12.3, mem(MB): 76, max: 77, threads: 3, max: 4
Komodo 10 64-bit: cpu%: 5.3, think: 10.8, mem(MB): 126, max: 226, threads: 2, max: 3
6. Komodo 10 64-bit vs Stockfish 10 64
6) Komodo 10 64-bit vs Stockfish 10 64, #116, 0-1 (adjudication)
Komodo 10 64-bit: cpu%: 5.8, think: 11.2, mem(MB): 125, max: 178, threads: 2, max: 3
Stockfish 10 64: cpu%: 5.8, think: 12.4, mem(MB): 76, max: 77, threads: 3, max: 4
------------------------------------------------------------------------------
# name games wins% draws% losses% score los% elo+/-
1. Stockfish 10 64 4 100.0 0.0 0.0 4.0 0.0 0.0
2. Komodo 10 64-bit 4 25.0 25.0 50.0 1.5 28.2 -88.7
3. Crafty-25.2 4 0.0 25.0 75.0 0.5 4.2 -338.0
------------------------------------------------------------------------------
Tech (average nodes, depths, time/m per move, others per game):
# name nodes depths time/m moves time cpu think mem max threads max
1. Stockfish 10 64 839K 21.8 0.9 58.8 53.8 5.7 11.9 75 77 3 4
2. Komodo 10 64-bit 822K 18.3 0.9 70.0 64.7 5.4 11.0 125 226 2 3
3. Crafty-25.2 2201K 17.9 0.9 67.5 61.5 5.8 12.3 64 69 1 4
all --- 1301K 19.2 65.4 60.0 0.9 5.6 11.7 89 226 2 4
Tournamemt finished! Elapsed: 12:40
Code: Select all
"inclusive players" :
{
"guide" : "matches are counted with players in this list only; side: white, black, any",
"mode" : false,
"players" : [],
"side" : "black"
},
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"
],
Code: Select all
{
"mode" : true,
"path" : "your_path_to_pgn_opening",
"type" : "pgn"
},
Code: Select all
diff --git a/src/3rdparty/fathom/CMakeLists.txt b/src/3rdparty/fathom/CMakeLists.txt
index feff497..ba7aa58 100644
--- a/src/3rdparty/fathom/CMakeLists.txt
+++ b/src/3rdparty/fathom/CMakeLists.txt
@@ -1,4 +1,4 @@
-add_library(json OBJECT
+add_library(fathom OBJECT
stdendian.h tbchess.h tbconfig.h tbprobe.h tbprobe.cpp)
#target_include_directories(fathom
# INTERFACE .)
diff --git a/src/game/tourmng.h b/src/game/tourmng.h
index 163e4b7..5c9907d 100755
--- a/src/game/tourmng.h
+++ b/src/game/tourmng.h
@@ -26,6 +26,8 @@
#ifndef tourmng_hpp
#define tourmng_hpp
+#include <cmath>
+
#include "game.h"
#include "configmng.h"
#include "uciengine.h"
Code: Select all
ox:~/Downloads/Banksia/build$ make
[ 4%] Building CXX object src/game/CMakeFiles/game.dir/engineprofile.cpp.o
/home/tobias/Downloads/Banksia/src/game/engineprofile.cpp: In member function ‘std::__cxx11::string banksia::Profile::toString(bool) const’:
/home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:48:62: error: no matching function for call to ‘max(long long unsigned int, const uint64_t&)’
auto cpu = double(cpuTotal) * 100.0 / std::max(1ULL, cpuTime);
^
In file included from /usr/include/c++/8/bits/char_traits.h:39,
from /usr/include/c++/8/ios:40,
from /usr/include/c++/8/istream:38,
from /usr/include/c++/8/sstream:38,
from /home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:26:
/usr/include/c++/8/bits/stl_algobase.h:219:5: note: candidate: ‘template<class _Tp> const _Tp& std::max(const _Tp&, const _Tp&)’
max(const _Tp& __a, const _Tp& __b)
^~~
/usr/include/c++/8/bits/stl_algobase.h:219:5: note: template argument deduction/substitution failed:
/home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:48:62: note: deduced conflicting types for parameter ‘const _Tp’ (‘long long unsigned int’ and ‘uint64_t’ {aka ‘long unsigned int’})
auto cpu = double(cpuTotal) * 100.0 / std::max(1ULL, cpuTime);
^
In file included from /usr/include/c++/8/bits/char_traits.h:39,
from /usr/include/c++/8/ios:40,
from /usr/include/c++/8/istream:38,
from /usr/include/c++/8/sstream:38,
from /home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:26:
/usr/include/c++/8/bits/stl_algobase.h:265:5: note: candidate: ‘template<class _Tp, class _Compare> const _Tp& std::max(const _Tp&, const _Tp&, _Compare)’
max(const _Tp& __a, const _Tp& __b, _Compare __comp)
^~~
/usr/include/c++/8/bits/stl_algobase.h:265:5: note: template argument deduction/substitution failed:
/home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:48:62: note: deduced conflicting types for parameter ‘const _Tp’ (‘long long unsigned int’ and ‘uint64_t’ {aka ‘long unsigned int’})
auto cpu = double(cpuTotal) * 100.0 / std::max(1ULL, cpuTime);
^
In file included from /usr/include/c++/8/algorithm:62,
from /home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:27:
/usr/include/c++/8/bits/stl_algo.h:3462:5: note: candidate: ‘template<class _Tp> _Tp std::max(std::initializer_list<_Tp>)’
max(initializer_list<_Tp> __l)
^~~
/usr/include/c++/8/bits/stl_algo.h:3462:5: note: template argument deduction/substitution failed:
/home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:48:62: note: mismatched types ‘std::initializer_list<_Tp>’ and ‘long long unsigned int’
auto cpu = double(cpuTotal) * 100.0 / std::max(1ULL, cpuTime);
^
In file included from /usr/include/c++/8/algorithm:62,
from /home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:27:
/usr/include/c++/8/bits/stl_algo.h:3468:5: note: candidate: ‘template<class _Tp, class _Compare> _Tp std::max(std::initializer_list<_Tp>, _Compare)’
max(initializer_list<_Tp> __l, _Compare __comp)
^~~
/usr/include/c++/8/bits/stl_algo.h:3468:5: note: template argument deduction/substitution failed:
/home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:48:62: note: mismatched types ‘std::initializer_list<_Tp>’ and ‘long long unsigned int’
auto cpu = double(cpuTotal) * 100.0 / std::max(1ULL, cpuTime);
^
/home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:49:83: error: no matching function for call to ‘max(long long unsigned int, const uint64_t&)’
auto thinking = double(cpuThinkingTotal) * 100.0 / std::max(1ULL, cpuThinkingTime);
^
In file included from /usr/include/c++/8/bits/char_traits.h:39,
from /usr/include/c++/8/ios:40,
from /usr/include/c++/8/istream:38,
from /usr/include/c++/8/sstream:38,
from /home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:26:
/usr/include/c++/8/bits/stl_algobase.h:219:5: note: candidate: ‘template<class _Tp> const _Tp& std::max(const _Tp&, const _Tp&)’
max(const _Tp& __a, const _Tp& __b)
^~~
/usr/include/c++/8/bits/stl_algobase.h:219:5: note: template argument deduction/substitution failed:
/home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:49:83: note: deduced conflicting types for parameter ‘const _Tp’ (‘long long unsigned int’ and ‘uint64_t’ {aka ‘long unsigned int’})
auto thinking = double(cpuThinkingTotal) * 100.0 / std::max(1ULL, cpuThinkingTime);
^
In file included from /usr/include/c++/8/bits/char_traits.h:39,
from /usr/include/c++/8/ios:40,
from /usr/include/c++/8/istream:38,
from /usr/include/c++/8/sstream:38,
from /home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:26:
/usr/include/c++/8/bits/stl_algobase.h:265:5: note: candidate: ‘template<class _Tp, class _Compare> const _Tp& std::max(const _Tp&, const _Tp&, _Compare)’
max(const _Tp& __a, const _Tp& __b, _Compare __comp)
^~~
/usr/include/c++/8/bits/stl_algobase.h:265:5: note: template argument deduction/substitution failed:
/home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:49:83: note: deduced conflicting types for parameter ‘const _Tp’ (‘long long unsigned int’ and ‘uint64_t’ {aka ‘long unsigned int’})
auto thinking = double(cpuThinkingTotal) * 100.0 / std::max(1ULL, cpuThinkingTime);
^
In file included from /usr/include/c++/8/algorithm:62,
from /home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:27:
/usr/include/c++/8/bits/stl_algo.h:3462:5: note: candidate: ‘template<class _Tp> _Tp std::max(std::initializer_list<_Tp>)’
max(initializer_list<_Tp> __l)
^~~
/usr/include/c++/8/bits/stl_algo.h:3462:5: note: template argument deduction/substitution failed:
/home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:49:83: note: mismatched types ‘std::initializer_list<_Tp>’ and ‘long long unsigned int’
auto thinking = double(cpuThinkingTotal) * 100.0 / std::max(1ULL, cpuThinkingTime);
^
In file included from /usr/include/c++/8/algorithm:62,
from /home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:27:
/usr/include/c++/8/bits/stl_algo.h:3468:5: note: candidate: ‘template<class _Tp, class _Compare> _Tp std::max(std::initializer_list<_Tp>, _Compare)’
max(initializer_list<_Tp> __l, _Compare __comp)
^~~
/usr/include/c++/8/bits/stl_algo.h:3468:5: note: template argument deduction/substitution failed:
/home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:49:83: note: mismatched types ‘std::initializer_list<_Tp>’ and ‘long long unsigned int’
auto thinking = double(cpuThinkingTotal) * 100.0 / std::max(1ULL, cpuThinkingTime);
^
/home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:50:51: error: no matching function for call to ‘max(long long unsigned int, const uint64_t&)’
auto mem = int(memTotal / (std::max(1ULL, memCall) * 1024 * 1024));
^
In file included from /usr/include/c++/8/bits/char_traits.h:39,
from /usr/include/c++/8/ios:40,
from /usr/include/c++/8/istream:38,
from /usr/include/c++/8/sstream:38,
from /home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:26:
/usr/include/c++/8/bits/stl_algobase.h:219:5: note: candidate: ‘template<class _Tp> const _Tp& std::max(const _Tp&, const _Tp&)’
max(const _Tp& __a, const _Tp& __b)
^~~
/usr/include/c++/8/bits/stl_algobase.h:219:5: note: template argument deduction/substitution failed:
/home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:50:51: note: deduced conflicting types for parameter ‘const _Tp’ (‘long long unsigned int’ and ‘uint64_t’ {aka ‘long unsigned int’})
auto mem = int(memTotal / (std::max(1ULL, memCall) * 1024 * 1024));
^
In file included from /usr/include/c++/8/bits/char_traits.h:39,
from /usr/include/c++/8/ios:40,
from /usr/include/c++/8/istream:38,
from /usr/include/c++/8/sstream:38,
from /home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:26:
/usr/include/c++/8/bits/stl_algobase.h:265:5: note: candidate: ‘template<class _Tp, class _Compare> const _Tp& std::max(const _Tp&, const _Tp&, _Compare)’
max(const _Tp& __a, const _Tp& __b, _Compare __comp)
^~~
/usr/include/c++/8/bits/stl_algobase.h:265:5: note: template argument deduction/substitution failed:
/home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:50:51: note: deduced conflicting types for parameter ‘const _Tp’ (‘long long unsigned int’ and ‘uint64_t’ {aka ‘long unsigned int’})
auto mem = int(memTotal / (std::max(1ULL, memCall) * 1024 * 1024));
^
In file included from /usr/include/c++/8/algorithm:62,
from /home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:27:
/usr/include/c++/8/bits/stl_algo.h:3462:5: note: candidate: ‘template<class _Tp> _Tp std::max(std::initializer_list<_Tp>)’
max(initializer_list<_Tp> __l)
^~~
/usr/include/c++/8/bits/stl_algo.h:3462:5: note: template argument deduction/substitution failed:
/home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:50:51: note: mismatched types ‘std::initializer_list<_Tp>’ and ‘long long unsigned int’
auto mem = int(memTotal / (std::max(1ULL, memCall) * 1024 * 1024));
^
In file included from /usr/include/c++/8/algorithm:62,
from /home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:27:
/usr/include/c++/8/bits/stl_algo.h:3468:5: note: candidate: ‘template<class _Tp, class _Compare> _Tp std::max(std::initializer_list<_Tp>, _Compare)’
max(initializer_list<_Tp> __l, _Compare __comp)
^~~
/usr/include/c++/8/bits/stl_algo.h:3468:5: note: template argument deduction/substitution failed:
/home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:50:51: note: mismatched types ‘std::initializer_list<_Tp>’ and ‘long long unsigned int’
auto mem = int(memTotal / (std::max(1ULL, memCall) * 1024 * 1024));
^
/home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:52:60: error: no matching function for call to ‘max(long long unsigned int, const uint64_t&)’
auto threads = int(threadTotal / std::max(1ULL, threadCall));
^
In file included from /usr/include/c++/8/bits/char_traits.h:39,
from /usr/include/c++/8/ios:40,
from /usr/include/c++/8/istream:38,
from /usr/include/c++/8/sstream:38,
from /home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:26:
/usr/include/c++/8/bits/stl_algobase.h:219:5: note: candidate: ‘template<class _Tp> const _Tp& std::max(const _Tp&, const _Tp&)’
max(const _Tp& __a, const _Tp& __b)
^~~
/usr/include/c++/8/bits/stl_algobase.h:219:5: note: template argument deduction/substitution failed:
/home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:52:60: note: deduced conflicting types for parameter ‘const _Tp’ (‘long long unsigned int’ and ‘uint64_t’ {aka ‘long unsigned int’})
auto threads = int(threadTotal / std::max(1ULL, threadCall));
^
In file included from /usr/include/c++/8/bits/char_traits.h:39,
from /usr/include/c++/8/ios:40,
from /usr/include/c++/8/istream:38,
from /usr/include/c++/8/sstream:38,
from /home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:26:
/usr/include/c++/8/bits/stl_algobase.h:265:5: note: candidate: ‘template<class _Tp, class _Compare> const _Tp& std::max(const _Tp&, const _Tp&, _Compare)’
max(const _Tp& __a, const _Tp& __b, _Compare __comp)
^~~
/usr/include/c++/8/bits/stl_algobase.h:265:5: note: template argument deduction/substitution failed:
/home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:52:60: note: deduced conflicting types for parameter ‘const _Tp’ (‘long long unsigned int’ and ‘uint64_t’ {aka ‘long unsigned int’})
auto threads = int(threadTotal / std::max(1ULL, threadCall));
^
In file included from /usr/include/c++/8/algorithm:62,
from /home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:27:
/usr/include/c++/8/bits/stl_algo.h:3462:5: note: candidate: ‘template<class _Tp> _Tp std::max(std::initializer_list<_Tp>)’
max(initializer_list<_Tp> __l)
^~~
/usr/include/c++/8/bits/stl_algo.h:3462:5: note: template argument deduction/substitution failed:
/home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:52:60: note: mismatched types ‘std::initializer_list<_Tp>’ and ‘long long unsigned int’
auto threads = int(threadTotal / std::max(1ULL, threadCall));
^
In file included from /usr/include/c++/8/algorithm:62,
from /home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:27:
/usr/include/c++/8/bits/stl_algo.h:3468:5: note: candidate: ‘template<class _Tp, class _Compare> _Tp std::max(std::initializer_list<_Tp>, _Compare)’
max(initializer_list<_Tp> __l, _Compare __comp)
^~~
/usr/include/c++/8/bits/stl_algo.h:3468:5: note: template argument deduction/substitution failed:
/home/tobias/Downloads/Banksia/src/game/engineprofile.cpp:52:60: note: mismatched types ‘std::initializer_list<_Tp>’ and ‘long long unsigned int’
auto threads = int(threadTotal / std::max(1ULL, threadCall));
^
make[2]: *** [src/game/CMakeFiles/game.dir/build.make:102: src/game/CMakeFiles/game.dir/engineprofile.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:481: src/game/CMakeFiles/game.dir/all] Error 2
make: *** [Makefile:84: all] Error 2
Thanks for your report. I have fixed some bugs/issues and tested on my Ubuntu 12 using gcc/g++ 6.2.0.
Code: Select all
sh c.sh