Networked Computers with Aquarium 2010
02 February 2010
What do all the green squares in the image below represent?

Seasoned Aquarium users will immediately recognize that this is a screen-shot of the Aquarium status bar (split into two lines) where each square represents one chess engine (Rybka in this case). What is unusual here is the huge number of chess engines: thirty-four instances of Rybka, all analyzing at the same time, running on a network of computers! It is an amazing experience to have so much analysis power at your fingertips.
It is becoming more common that players have access to more than one computer on their home network. With Aquarium 2010 it is possible to run chess analysis on a network of computers, either on a local network or over the Internet. The image above is taken from one such analysis session.
In the following, a “local engine” is used to describe an engine running on the same computer as Aquarium, but a “remote engine” runs on a different computer.
The Benefit of Analysis on Networked Computers
A single chess engine can only use the CPUs of the computer on which it is running. At least this applies to currently available chess engines. Using Aquarium as a central point for managing multiple chess engines running on a network of computers gives you additional computing power, which can be used in various ways to speed up and improve your analysis.
More computing power can be used to get faster results, which is important if you have limited time or if you simply want to use more time for other things. You can analyze deeper, or examine more positions and games in the same amount of time.
Aquarium analyzing on one master computer and two slave computers
The additional computer(s) allow you to run more chess engines at the same time; e.g., to get a “second opinion” of a position. You can view the position from various angles by letting a few engines (Rybka, Shredder, etc.) analyze in single variation mode while others use multi-variation analysis and perhaps one engine analyzes the opponent’s threats at the same time. The new IDeA (Interactive Deep Analysis) version in Aquarium 2010 was also designed to take advantage of a network of computers for its analysis.
Practically anyone who has access to two or more computers can take advantage of chess analysis on networked computers with Aquarium 2010, even if the computers are in different countries!
In general, the players that will benefit most from the additional analysis power of networked computers are the more serious top-level players, correspondence players, opening analysts, etc.
Few users have access to the computing power required to run as many engines as shown above, but as soon as you have one additional computer hooked up to your Aquarium, new opportunities for analysis arise.
Even if you never use more than one chess engine at the same time for your analysis, you may still want to consider using a remote engine. It gives you more flexibility and allows you to use the engine from different computers. You can, for instance, run the engine on your most powerful computer and use it from Aquarium running on your laptop, whenever that suits you. With a little computer network knowledge you can even access it via the Internet.
The more advanced your analysis techniques are and the more computers you have, the more Aquarium’s networked engine approach has to offer. If you use IDeA, either alone or in combination with infinite analysis, the networked approach is a very attractive option.
Of course the basic requirement is that you actually have access to networked computers to take advantage of the analysis features that are the subject of this column. If you do have access to networked computers, the addition of remote engines never limits your existing analysis options, but adds new ones. Therefore, the only question is how much you will benefit from the addition of remote engines. The simpler your analysis methods are the less you will gain. As an example, a user who never uses analysis presets, always analyzes with a single engine, and doesn’t use IDeA will gain much less than someone who uses multiple engines, analysis presets, and IDeA.
If you own two computers, but they are not connected on a network, you can still use them both for analysis (although you can’t use remote engines), as you are allowed to install Aquarium on computers that you own. For some types of analysis, it is a question of working habits and whether you prefer the networked engine approach or separate instances of Aquarium running on different computers.
The Types of Analysis on Networked Computers
Remote engines can be used for any type of analysis in Aquarium:
- Infinite analysis. Any combination of local and networked engines can be used for infinite analysis. As you may remember from previous columns on Infinite Analysis with Rybka Aquarium, you can analyze simultaneously with many engines, even positions from different games. In Analysis Presets in Rybka Aquarium, I described how you can create a quickly accessible “analysis preset” that can be used for analyzing any position simultaneously with different engines and different analysis settings (normal infinite analysis, multi-variation analysis, threats, etc.). Both local and networked engines can be used in the same analysis preset.
- IDeA (Interactive Deep Analysis). The new IDeA version in Aquarium 2010 is designed with analysis on a network of computers in mind. To my knowledge, the largest number of engines that has been used simultaneously for analysis in IDeA is forty-four.
- Game Analysis and Find Blunders. The analysis engine used here can either be a local engine or a remote engine. Note that you can’t analyze multiple games simultaneously using these analysis methods, although you can automatically analyze a list of games sequentially.
Remote engines can also be used in matches and tournaments, except for Randomizer matches.
How to Use a Remote Engine in Aquarium
I assume that you have already installed Aquarium 2010. We will call the computer where Aquarium is running the “master computer.” Now you want to set up a remote engine on another computer (a “slave computer”) and then use it from Aquarium. The following steps are required:
1. Install the engine and engine server software on the slave computer.
2. Configure the engine server on the slave computer.
3. Install the remote engine in Aquarium on the master computer.
These three steps are described below. After you have completed them, you can use the remote engine for analysis in Aquarium.
Installing a Remote Engine Server
Besides the engine itself, you need to install the RTHomeServer (which is available as a free download) on the slave computer. For simplicity, I will install both components into the same directory.
1a) Create a directory and copy the engine you want to use into the new directory.
1b) Download the RTHomeServer and save the downloaded file into the new directory.
1c) Extract RTHomeServer.rar (with WinRar or WinZip). After that you should see several files in the new directory, including RTSingleServer.exe, which is the remote engine server.
Now, all the required software is available and the next step is to configure the remote engine server.
Configuring the Remote Engine Server
One of the files contained in the new directory is RTSingleServer.ini, which contains the engine server configuration. At this stage, the goal is to get the server up and running, so I will only change the essential parameters.
2a) Open RTSingleServer.ini with a text editor, such as Notepad.
2b) Note the second line in the file: port=7788. The port number specified here (7788) is needed later on for the remote engine setup within Aquarium as described below.
2c) The third line in the file is engine=rybka.exe. Change rybka.exe to the name of the engine you are going to use (the one you copied to the new directory in step 1a above). An example is engine=Rybka 3 1-cpu w32.exe. Here I use the single-core version of Rybka 3 32-bit. Save the changes you have made and exit Notepad.
Finally, you need to find the IP address of the computer running the engine server. If you don’t know what an IP address is or how to find it, see the next two sections. You need the IP address when setting up the remote engine in Aquarium.
The IP Address
Every computer on a network has a unique identifying number, called an IP address. A typical IP address on your local network might look like this:
192.168.1.127
IP addresses are normally expressed as a “dotted decimal number” like the one above.
If a program needs to communicate with another computer on a network, it must to know its IP address. As an example, when Aquarium wants to use a remote engine it needs to know the IP address of the slave computer where the engine server is running.
Finding the IP Address of the Slave Computer
The following describes how you can find the IP address of a computer running Windows 7, Vista, XP, or 2000.
1. Click Start and then select All Programs (Windows 7, Vista, and XP) or Programs (2000).
2. Click Accessories and then Command Prompt.
3. At the command prompt, enter: ipconfig
The output from the command will display the IP address (or IPv4 address if you are using Windows 7 or Vista). The example shown in the image below comes from Windows XP. The IP address is highlighted.
Adding a Remote Engine to Aquarium 2010
At this point you should have completed the configuration of the remote engine server and have the following information handy:
1. The IP address of the remote engine server
2. The port number specified in the server’s configuration file
Start Aquarium on the master computer and switch to Engines view by clicking the Engines button in the sidebar. Click the Add button to install the remote engine. The “New engine properties” dialog box will be brought up.

Here you must set Type to “Remote UCI” and give the engine a name (I have selected “Remote Rybka 1” in this example). Next, click the Setup button in the lower left corner.

Server is the IP address of the slave computer where the remote engine server runs.
Port is the port number that is specified in the configuration file of the remote engine server.
User is not used in the current version of the remote engine server. Set it to anything you like. “MyUsername” is used in the example shown in the image.
Pass is your password, but it’s not used in the current version of the remote engine server. Set it to anything you like. “MyPassword” is used in this example.
Reconnect can be left as it is.
After specifying the parameters, click OK, and then OK again, and the remote engine has been configured within Aquarium.
Determining if the Remote Engine was Successfully Installed

Go to the computer where you installed the remote engine server (the slave computer) and start it by double-clicking the RTSingleServer application. The small window shown below should be opened.
The engine server is ready for use. Now you can go to the master computer where you run Aquarium 2010. Start Aquarium and switch to the Sandbox. Select the Analysis tab on the ribbon and click Start Custom.

Here you will see the newly installed remote engine (“Remote Rybka 1” in this example) listed among other installed engines. After selecting the engine, click OK and if everything works as expected, the remote engine will start analyzing the current position.
Look at the computer where the engine server is running to see if a connection is established and the username you selected when installing the engine in Aquarium is listed in the “Users” list.
Running Multiple Remote Engines on the Same Computer
If your slave computer has more than one core, you can use it to run multiple remote engines simultaneously. It is quite common, for instance, that IDeA users analyze with multiple single-core Rybkas on the same computer. When running the engines, you must of course make sure that they don’t use more cores than the computer has.
Each additional remote engine requires its own engine server software and must be installed into a separate directory. Otherwise, the process for installation and configuration is the same as described above, except that each server must use a unique port number. When we installed the engine server above, we left the port number unchanged in the configuration file (7788). For the next engine server on the same computer, you could use port number 7789, 7790 for the third one, etc. You also need to use these port numbers when you install each remote engine in Aquarium. If all the engine servers are running on the same slave computer, the IP address would be the same, of course.
Let’s say that you want to install four single-core Rybkas on a quad computer. You would start by creating four directories and copy the engine and the engine server software into all of them. After that you would edit the configuration file in each directory and change the engine and the port number as explained above. Finally, you would go to the master computer, start Aquarium, and install the four remote engines. They would all use the same IP address (since they are located on the same computer), but different port numbers.
Using Remote Engines on Two Different Computers
There is no hard limit on the number of slave computers that Aquarium can control. Simply install the engine and engine server on each slave computer as explained above. Note that it is OK to use the same port numbers on different computers. If you have two dual core computers and wish to run two single-core engines on both of them, you can use port numbers 7788 and 7789 on both computers.
It is best to test each remote engine in Aquarium after it has been installed, so you discover any problems as early as possible.
Connecting to Remote Engines Across the Internet
You can run engines on the master computer where Aquarium is running, computers on your local area network, and computers connected over the Internet all at the same time. It doesn’t matter where in the world the slave computers are located as long as you can connect to them.
Changing the Hash Size of a Remote Engine
By default, the hash size of remote engines is 32MB, regardless of your settings in Aquarium. You can either edit the configuration file and set the hash size to a different value or modify it so that the value specified in Aquarium overrides the default value in the engine server.
Open the configuration file (RTSingleServer.ini) with Notepad and look for the following lines:
[engine]
Hash=32
Here you can change the default hash size to a different value. Just remember, that the more remote engines you are going to run on a computer the lower the value must be.
The reason why the server doesn’t allow you to change the hash size from Aquarium can be found in the [client] section of the configuration file:
[client]
Hash=
Max CPUs=
By default, the options listed in the [client] section can’t be changed from Aquarium. If you remove the first line in the section (Hash=), the hash size specified in Aquarium will be used for the remote engine.
Also note that by default Max CPUs cannot be changed from Aquarium unless you also remove the third line shown above, “Max CPUs=.”
Advanced users should be able to understand most of the options in the configuration file by reading the comments and by having a look at the read-me file.
Conclusion
Analysis on networked computers gives you more flexibility and additional analysis power. In this column I have explained how to install and configure remote engines. After that you can use them just like any other engine in Aquarium. When used for infinite analysis, remote engines are a perfect match for Aquarium’s analysis presets, which have good support for multi-engine analysis. Remote engines are also ideal for IDeA analysis as many Aquarium 2010 users have already discovered.