Deep Rybka 3 Memory Usage
The Rybka Interface offers interesting new functions in the options dialog box. The latter contains two new tabs.
TableBases GUI is used, as previously, to set the path for the endgame databases.
In addition to those there is another tab TableBases Engine, which offers almost exactly the same optional settings.
So what are the effects of this settings dialog on the behaviour of the program? It allows you to establish which tablebases are loaded into memory by the Rybka engine. In order to understand more clearly the entry TableBases Engine, the following explanation of the way the Rybka engine uses memory is necessary.
--------------------------------------------------------------------------------
Memory usage by Deep Rybka
Because of the way Rybka works, there are some finer technical details of multi-core computers which have to be taken into account. Rybka starts a separate version of the engine for each processor. Each of these versions of the engine makes use of its own space in memory... Specifically:
1. Including 4+5 piece tablebases requires for each version of the engine approx.110-120 MB of memory.
2. Each engine gets its own tablebase cache.
3. On the other hand the hash table is only required once for all the engines.
Example: 8 core processors, 256 MB tablebase cache, 2 GB hash table
1. Engines 8*120 MB = approx. 1 GB
2. Tablebase cache 8*256 MB = 2 GB
3. Hash table 2 GB
4. Windows memory usage varies a great deal, and it is better to have an extra GB to be on the safe side.
So, such settings would require a computer with 8 GM of RAM. If you try to proceed in this fashion on a computer with only 4 GB of RAM, then the engine starts in slow motion, since Windows is continually offloading memory on to the hard disk.
For the purposes of clarification the tablebase cache has deliberately been set at a very high level. The simplest measure to reduce the memory usage is by reducing the size of the cache. If you set it to 32 MB, then the 8 versions of Rybka will run with a 2 GB hash table on a computer with 4 GB of RAM. But this does not leave much room over for running other programs.
So far, we have not considered 6 piece tablebases. Memory usage increases very rapidly with such data. As a rule of thumb, you can say that for every GB of tablebases on the hard disk you will require approx. 1-1.5 MB memory per version of the engine in use. So if you have 100 GB of tablebases, you will need in the example above an additional 8*100 MB = 800 MB to 8*150 MB = 1200 MB RAM. So that would still work on a computer with 8 GB of RAM. It would overload a computer with 4 GB of RAM even with a small tablebase cache.
You can control your memory usage in Task Manager under the heading Performance. The diagram "CPU Usage" indicates how much is being used at any specific moment. Under the headings "Physical memory", "Totals" you can see how much the computer has. The value under the heading of CPU Usage can become greater that the memory available and at that point Windows has to create space for the excess on the hard disk.
Tip: More than 3 GB RAN can only function on a 64 bit version of Windows!!!. If you wish to use a 32 bit Windows, then the hash tables have to be reduced to 1 GB or to 512 MB. You can take some pressure off he memory problem by making no use of tablebases whatsoever or at least setting the cache lower. The first option does away with the cache (8*32 MB = 256 MB) and also the data for 4+5 piece tablebases (approx. 8*15 MB = 120 MB).
http://www.chessbase.com/support/faq2.asp?id=314









News