forked from Disservin/fastchess
-
Notifications
You must be signed in to change notification settings - Fork 0
/
man
255 lines (191 loc) · 10.6 KB
/
man
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
FASTCHESS General Commands Manual FASTCHESS
NAME
fastchess - a command-line tool for managing chess games with engines
SYNOPSIS
fastchess [OPTIONS]
DESCRIPTION
fastchess is a command-line tool designed to manage and orchestrate
chess games between engines. It provides a range of options to configure
game settings, engine parameters, concurrency, and output formats.
OPTIONS
The following options are available:
-quick cmd=ENGINE1 cmd=ENGINE2 book=BOOK
Shortcut for predefined game settings involving two engines, time controls,
rounds, and concurrency.
-event NAME
Set the event name for the PGN header.
-site NAME
Set the site name for the PGN header.
-config [file=NAME] [discard=(true|false)] [outname=NAME] [stats=(true|false)]
Load engine configurations to resume games from previous sessions.
file - the file name to load the configuration from.
discard - discard the saved game results. Defaults to false.
outname - the auto generated file name of the config. Default is "config.json".
stats - load the stats from the config file. Defaults to true.
-concurrency N
Play N games concurrently, limited by the number of hardware threads. Default value is 1.
--force-concurrency
Ignore the hardware concurrency limit and force the specified concurrency.
-rounds N
Play N rounds of games where each game within the round uses the same opening. Default value is 2.
-games N
Play N games in each round. Default value is 2.
This should be set to 1 or 2, setting this higher than 2 does not
provide meaningful results.
-variant VARIANT
standard - play Standard Chess (default)
fischerandom - play Fischer Random Chess
-repeat
Set the number of games to 2. This is equivalent to -games 2.
-recover
Enables crash recovery. This will attempt to recover the engine after a crash,
to continue with the tournament.
-draw movenumber=NUMBER movecount=COUNT score=SCORE
Enables draw adjudication. Set conditions for a draw based on the number of moves,
move count, and score threshold.
NUMBER - the number of moves before checking for a draw.
Default value is 0.
COUNT - the number of consecutive moves below the score threshold to adjudicate a draw.
Pawn moves and captures resets the counter.
Default value is 1.
SCORE - the score threshold (in centipawns) for a draw.
Default value is 0.
-resign movecount=COUNT score=SCORE [twosided=(true|false)]
Enables engine resignation. Configure when the engine should resign based on move
count and score threshold.
twosided - if set to true, enables two-sided resignation.
Defaults to false.
COUNT - the number of consecutive moves above the score threshold before resigning.
Default value is 1.
SCORE - the score threshold (in centipawns) to resign at.
Default value is 0.
-maxmoves N
Enables draw adjudication by maximum number of moves.
If the number of moves of the game reaches N without result, the game ends in a draw.
-openings file=NAME format=(epd|pgn) [order=ORDER] [plies=PLIES] [start=START]
Specify an opening book file and its format for game starting positions.
format - the file format, either epd or pgn.
ORDER - the order of openings to be played, either random or sequential.
Default is sequential.
PLIES - the number of plies to use (for pgn only).
If not specified, uses the maximum available plies.
START - the starting index of the opening book.
Default value is 1.
-output format=FORMAT
Choose the output format for game results (cutechess or fastchess).
Default is fastchess.
-pgnout file=NAME notation=(san|lan|uci) [nodes=(true|false)] [seldepth=(true|false)] [nps=(true|false)] [hashfull=(true|false)] [tbhits=(true|false)] [timeleft=(true|false)] [min=(true|false)]
Export games in PGN format with specified notations and optional tracking of nodes, seldepth, nps, hashfull, and tbhits.
notation
san - Standard Algebraic Notation (default)
lan - Long Algebraic Notation
uci - Universal Chess Interface
nodes - defaults to false, track node count.
seldepth - defaults to false, track seldepth.
nps - defaults to false, track nps.
hashfull - defaults to false, track hashfull.
tbhits - defaults to false, track tbhits.
timeleft - defaults to false, track time left at the end of move.
min - defaults to false, minimal PGN format.
-epdout file=NAME
Export the final position of each game in EPD format.
-wait N
Wait N milliseconds between games. Default value is 0.
-noswap
If specified, prevents swapping of colors.
-reverse
If specified, uses tournament schedule with reversed colors.
-ratinginterval N
Set the rating interval for the rating report. For penta reports,
this is reports per N game pair. Setting it to 0 will disable it.
Default value is 10.
-scoreinterval N
For cutechess output only. Set the interval for printing score results.
Results are printed per N games played. Setting it to 0 will disable it.
Default value is 1.
-autosaveinterval N
Automatically saves the tournament state to the config.json file each N games played.
Setting it to 0 will disable it. Default value is 20.
-sprt elo0=ELO0 elo1=ELO1 alpha=ALPHA beta=BETA model=MODEL
Set parameters for the Sequential Probability Ratio Test (SPRT).
For more information see
https://tests.stockfishchess.org/sprt_calc
MODEL
Specify the model to use.
logistic - uses regular/logistic Elo for elo0 and elo1.
bayesian - uses bayesElo for elo0 and elo1.
normalized - uses nElo for elo0 and elo1. (default)
-srand SEED
Specify the seed for opening book randomization. Otherwise, the chosen seed will be
a random integer value between 0 and (2^64 - 1).
-log file=NAME level=LEVEL compress=(true|false) realtime=(true|false)
Specify a log file with a specific log level.
Set compress to true if you want the log file to be gzipped. Default is false.
Specifying a level will only print/save the specified level and the levels above that.
Level "trace" is only ever saved to a file and never printed to the console.
By default engine logs will be written in realtime this adds a small overhead which
might lead to timeouts for very short time controls, to counteract this set it to false.
LEVEL
trace
warn (default)
info
err
fatal
-use-affinity
Enable thread affinity for bindings engines to specific CPU cores.
-report penta=(true|false)
Reports pentanomial statistics (only for fastchess output). Defaults to true.
For more information see https://www.chessprogramming.org/Match_Statistics
-version
Print the version number and exit.
-help
Print a help message and exit.
-each OPTIONS
Apply specified OPTIONS to both engines.
-engine OPTIONS
Apply specified OPTIONS to the next engine.
cmd=COMMAND
Specify the engine command.
name=NAME
Set the engine name. Must be unique.
[args="ARGS"]
If you want to pass multiple arguments, use args="ARG1 ARG2 ARG3".
Please note that double quotes inside the string must be escaped,
e.g., args="single words \"multiple words\"" -> your engine will receive
single
words
multiple words
[tc=TC]
TC uses the same format as Cute-Chess, which is moves/minutes:seconds+increment. For example,
10+0.1 would be 10 seconds with 100 ms increment and 40/1:0 would be 40 moves every minute.
[timemargin=N]
Allows the engine to exceed the time limit by N milliseconds.
Default value is 0.
[st=ST]
Movetime for the engine in seconds.
[nodes=NODES]
Maximum number of nodes to search. If supported.
[plies=PLIES]
Maximum number of plies (depth) to search. If supported.
[depth=DEPTH]
Maximum number of depth to search. If supported. Does the same as plies.
[proto=PROTOCOL]
Specify the communication protocol. Only supports uci.
[dir=DIRECTORY]
Working directory for the engine.
[option.name=VALUE]
This can be used to set engine options. Note that the engine must support the option.
For example, to set the hash size to 128MB, use option.Hash=128.
EXAMPLES
To start a match between two engines using a random order of openings from book.epd:
$ fastchess -engine cmd=Engine1.exe name=Engine1 -engine cmd=Engine2.exe \
name=Engine2 -openings file=book.epd format=epd order=random \
-each tc=10+0.1 -rounds 200 -repeat -concurrency 4
To resume a match from a saved configuration:
$ fastchess -config file=config.json
AUTHORS
fastchess was written by Disservin, Szil, PGG106, and contributors.
REPORTING BUGS
Report any bugs to https://github.com/Disservin/fastchess/issues.
COPYRIGHT
This software is licensed under the MIT license. See the LICENSE file for details.