Viewing results

Reports

The competition report file (code.report) file is a plain text description of the competition results. This is similar to the live report that is displayed while the competition is running. It includes the contents of the competition’s description setting.

For tournaments, it also shows descriptions of the players. These are obtained using the GTP name and version commands, or using gomill-describe_engine if the engine provides it.

For example, in a playoff tournament with a single matchup:

playoff: example

Testing GNU Go level 1 vs level 2, 2010-10-14

gnugo-l1 v gnugo-l2 (5/5 games)
board size: 9   komi: 7.5
           wins              black        white      avg cpu
gnugo-l1      2 40.00%       1 33.33%     1 50.00%      1.23
gnugo-l2      3 60.00%       1 50.00%     2 66.67%      1.39
                             2 40.00%     3 60.00%

player gnugo-l1: GNU Go:3.8
player gnugo-l2: GNU Go:3.8

The report file is written automatically at the end of each run. The report command line action forces it to be rewritten; this can be useful if you have changed descriptive text in the control file, or if a run stopped ungracefully.

The show command line action prints the same report to standard output.

It’s safe to run show or report on a competition which is currently being run.

Game records

The ringmaster writes an SGF record of each game it plays to the code.games/ directory (which it will create if necessary). This can be disabled with the record_games setting. The filename is based on the game’s game_id.

(You might also see game records in a code.void/ directory; these are games which were abandoned due to software failure; see Void games.)

The ringmaster supports a protocol for engines to provide text to be placed in the comment section for individual moves: see gomill-explain_last_move.

The game record includes a description of the players in the root node comment [1]. If an engine implements gomill-describe_engine, its output is included.

[1]The root node comment is used rather than the game comment because (in my experience) SGF viewers tend to make it easier to see information there.

CPU time

The reports and game records show the CPU time taken by the players, when available.

If an engine implements the gomill-cpu_time command, its output is used. Otherwise, the ringmaster uses the CPU time of the engine process that it created, as returned by the wait4() system call (user plus system time); unfortunately, this may not be meaningful, if the engine’s work isn’t all done directly in that process.

Querying the results

Gomill provides a Python library interface for processing the game results stored in a tournament’s state file.

This is documented in Tournament results API. See also the find_forfeits.py example script.