
Installing and using The Many Faces of Go Engine on a Microsoft HPC cluster

Installation:

Unzip gtpmfgo.zip

The executable is called gtpmfgo.exe.  It is built with MPI and requires MPI, so it will only run under mpiexec.  It requires the files gamedb.data and learn.dat.  They should be in the working directory where the program is launched.

Put gtpproxy.exe on the remote PC that will run the graphics front end.  If the GUI will run on the head node there is no need for gtpproxy.

The program should be configured to run on a power-of-2 number of nodes.  If more nodes are available, the program will only use use nodes up to the highest possible power of two.

If the program fails to start or has an error, use the -logengine parameter to get detailed error output in gtpmfgo-logN.txt (where N is the node number).

The node 0 instance of the program has a GTP interface to a GUI program using either stdin/stdout or a TCP connection.  Node 0 coordinates parallel execution of commands by the other nodes.

There are several options for GUI front ends.  The preferred GUI is The Many Faces of Go, version 12 (mfgo), available from Smart-Games.com.  Start gtpmfgo on the cluster, specifying a TCP GTP connection using -listen.  Run mfgo on any PC and use the gtpproxy program to convert from mfgo's stdin/stdout GTP connection to a TCP connection.

There are free GUI programs available that can also connect through gtpproxy, but I can't provide support.

gtpmfgo command line options:

-help			Show list of commad line options
-r			Randomize the engine (not needed for the default level)
-threads n		Use at most n threads per node (default one thread per core/virtual CPU)
-playouts n		Use at most n playouts total per node
-pad_time n		Leave n seconds on the clock at the end of the game
-memory n		Use n MB of memory per node (default 1000 MB)
-exchange n		nodes exchange data every n playouts (default 1000)
-lx			Set level to x (0 to 6).  level 6 is default and is the 
			only level using more thane node
-logsearch		Put search details into the log files
-loggtp			Put GTP command history into the log files
-logengine		Put engine diagnostic output into the log files

-japanese		use Japanese rules
-chinese		Use Chinese rules
-cgos			Use Computer Go Online Server rules

-listen port		listen on port for a connection for GTP commands
-talk ip_address port	Connect to a server for GTP commands


Procedure for running the program with a remote GUI:

on the head node
mpiexec -n 8 gtpmfgo -japanese -memory 2048 -logengine -listen 12345

on a pc, run Many Faces of Go, version 12, select "Play Go".
in the New Game dialog, select Japanese rules
set one color to "Computer player" and "GTP player".
Click on Configure next to "GTP Player".
select one of the three configuration slots and set the folder to the location of gtpproxy
set the command to gtpproxy -talk head-node-ip-address 12345
click OK to save the GTP configuration
Click OK to start the game

Any other GUI will have some way to communicate using stdin/stdout and can be connected using gtpproxy.  This can also be used if you want to run the program on the KGS or CGOS server.


Running the GUi on the head node:

Run Many Faces of Go on the head node.
in the New Game dialog, select Japanese rules
set one color to "Computer player" and "GTP player".
Click on Configure next to "GTP Player".
select one of the three configuration slots and set the folder to the location of gtpmfgo
set the command to mpiexec -n 8 gtpmfgo -japanese -memory 2048 -logengine




