Fuego User Manual
This is the fuego user Manual from Fuego revision 1065
The newest revision can be found at http://fuego.svn.sourceforge.net/viewvc/fuego/trunk/doc/manual/
|Table of contents|
Fuego is a Go playing engine, which communicates with a user interface using the Go Text Protocol (GTP). You need a graphical user interface that supports GTP to play against Fuego. The recommended one is GoGui because Fuego uses some of the special features of GoGui. The most important feature is the Analyze Command window, which makes engine-specific GTP extension commands accessible in the user interface. These commands allow to query and display internal information about the move generation and to set engine parameters. Some of these are only of interest to engine developers, some of them might also be useful for users.
The default configuration for Fuego makes conservative assumptions about the available computing power and memory. You can increase the playing strength of Fuego by using parallel search on a multi-core or multi-CPU machine and by increasing the amount of memory to use. Parameters can be changed with certain commands in the analyze window of GoGui, but this will affect only the current session. To optimize the default configuration for a certain machine in a persistent way, you can write a text file with GTP commands (e.g. configfile) and change the command line for invocation of Fuego in the user interface to fuego --config configfile. Here is an example of such a configuration file:
uct_param_search number_threads 4 uct_param_search lock_free 1 uct_max_memory 6000000000 uct_param_player reuse_subtree 1 uct_param_player ponder 1
Note that fuego parameters are double dash (--config). Try from command line if your GUI gives you an error. Try reducing memory of switching of ponder if you see fuego suddenly crashing mid game.
The meaning of these GTP commands is:
The number of threads to use. The default is 1. This should be set to the number of cores or CPUs available on the system for maximum performance. It has been tested with up to 8 cores.
Whether to enable lock-free multithreading. The default is 0 (=no). You should enable this on modern Intel or AMD CPUs (with IA-32 and Intel-64 architecture) if more than two threads are used. Note that without lock-free search the performance of Fuego can even decrease if you use more threads. The maximum number of threads that can be used without a decrease of performance, if the lock-free mode is not used, depends on the board size.
Determines the maximum amount of memory in the search tree, and thus the maximum memory to use. The default is 512MB. The example above is using 6GB. Fuego maintains two search trees internally, so setting max_memory to 512MG gives 256MB to each tree. The second tree is used for work space if using reuse_subtree, or if the search tree fills up and nodes with small counts are removed.
Whether to reuse the reusable part of the tree from a previous move generation. The default is 0 (=no). Setting this to 1 (=yes) is required if pondering is used, but it also gives a small improvement in playing strength if pondering is not used.
Whether to continue the search while waiting for the opponent's move. The default is 0 (=no). If this is set to 1, uct_param_player reuse_subtree must also be enabled.
This a list of some game-specific parameters, which can be changed in GoGui's analyze command window.
There is one parameter that is interesting to users: Timelimit is the fixed time limit in seconds to use for a move generation, if no time settings are used for the game. The default is 10.
Change the rules used in the game. Note that entering text in the rules text entry of GoGui's game info dialog is for storing this information in the file only. It is not transmitted to the Go program because there is no GTP standard command for setting the rules. What rules are used by Fuego depends only on the settings in Go Param Rules.
You can enable the display of Fuego's thinking process by setting Live gfx in the Uct Param Search analyze command to Counts or Sequence. Counts will show the current exploration counts of the moves as labels on the board and the currently best move using a half-transparent stone. Sequence will show the current best sequence of moves using half-transparent stones. The display interval can be configured with Live gfx interval.
Another display mode is Live gfx in the Uct Param GlobalSearch analyze command. It shows the statistics for ownership of each point averaged over all end positions of the simulations. This command requires that Territory statistics in Uct Param GlobalSearch is also enabled.
This can be achieved using the gogui-twogtp add-on program. For an example of its usage see: WatchingNumbersGoUp