syzygy wrote:dcorbit wrote:These files were created on a computer that was also busy doing other things (his program is SMP and it seems to have something equivalent to the Unix nice command since it yields when I have other apps needing resources):
What CPU and how many cores?
----------------------------------------------------------------
CrystalCPUID Pure x64 Edition 4.15.5.452 (C) 2002-2009 hiyohiyo
Crystal Dew World :
http://crystalmark.info/
----------------------------------------------------------------
OS : Windows Server 2008 R2 Server Standard Edition (full installation) SP1 [ 6.1 Build 7601 ]
Date : 2012/02/21 22:17:42
CPU Name : Intel Core i7 (Bloomfield)
Vendor String : GenuineIntel
Name String : Intel(R) Xeon(R) CPU W3565 @ 3.20GHz
Architecture : x64
Process Rule : 45 nm
Platform : LGA1366 [1]
CPU Type : Original OEM processor [0]
Number (Total) : 4
Physical Core : 8
Family : 6h
Ext. Family : 6h
Model : Ah
Ext. Model : 1Ah
Stepping : 5h
Ext. Stepping : 5h
Microcode ID : 11h
Feature : MMX SSE SSE2 SSE3 SSSE3 SSE4.1 SSE4.2 XD Intel 64
PowerManagement : SpeedStep
Clock : 3200.17 MHz
Data Rate : QDR
L1 D-Cache : 32 KB
Memory : 12286 MB
The machine is busy doing other things simultaneously all the time, so it's probably not a good benchmark.
What does it produce? DTM or DTC/DTZ? I suppose it doesn't include compression?
Here is the goo from his English language help text file:
Retrospective_Chess_Generator4, ChessDLL, RetroChess3 are 3 projects for chess game.
The programs and dll require OS Windows. Retrospective_Chess_Generator is a 64-bit application,
therefore it can work only in Windows 64-bit (e.g. Windows XP x64, Windows Vista x64, Windows
Server 2003 x64, etc.). ChessDLL and RetroChess3 are 32-bit.
Description of Retrospective_Chess_Generator4.
This application generates tablebases for chess endgames. By default generated bases are stored in
/Bases folder. When there are less than 8 chessmen on a chessboard, it's comparatively easy to
analyze every possible position to see, if the position is drown or one of the side will win and
how many steps it will take to win. In order to create a 7-men tablebase, the application would
require more than 2 GB of memory (RAM), however 32-bit application cannot allocate this amount of memory.
That is why Retrospective_Chess_Generator4 is a 64-bit program.
Once the tablebase is built, other applications can use the tablebase to analyze all the possible
moves from a given position and choose the best move. A program that uses such a tablebase, plays
faultlessly and it isn't possible to play stronger. It is proved, as mathematical theorem.
Retrospective_Chess_Generator can build tablebases of 3, 4, 5, 6, or 7 chessmen. To start with,
you need to select an endgame (e.g. "5_KRB-KR") and start analysis using a Build button. As a result,
a tablebase will be generated. The file has .tby extension, in our case it will be named 5_KRB-KR.tby.
It means all positions of "Rook and Bishop against Rook" will be analyzed. In it a endgame, superfluous
only Bishop, but white can win from many positions.
Designation: K - King, Q - Queen, R - Rook, B - Bishop, N - Knight, P - Pawn. RetroChess3 requires
at least all 3-4-man tablebases (40 MB). The program Retrospective_Chess_Generator4 is optimized for
the best "use of RAM / time of generation" ratio.
For example, many 7-man tablebases can be generated using 4 GB of RAM (for generation of any tablebases
will not need more than 8 GB); 6-man tablebases need only 250 Mb, etc. This optimization is extremely
important, because creation of all 7-man tablebases will takes several years (if for generation use
many computers). (Although, 5- and 6-men tablebases are generation much faster). That is why
Retrospective_Chess_Generator4 features advanced optimizations. Ready tablebases are not compressed
as much as well known Nalimov's tablebases. The difference is about 20%. E.g., all 5-men tablebases
take 7.1GB in 'emd' format, ant 9.1GB in the format of this program ('.tby'). However, using WinRAR,
you can get 'tby' tablebases compressed even more than Nalimov's tablebases. The tablebases can be
converted from one format to the other comparatively quickly using ChessDLL.dll (the computer with very
considerable quantity of memory is necessary).
At the moment of writing of given article (2010) tablebases in other formats, including tablebases
of Nalimov, exist only for positions with 3-6 chessmen. If built 7-man tablebase, chess engines can
use them (Game will be stronger and in positions with 9-10 chessmen. Because of search singularities).
Also it is possible to create a site, for the analysis of different positions, and it is possible to
analyze the chess endgames, which represent the big theoretical interest.
All programs presuppose that endgame tablebases already exist, either in 'Bases' folder, or in the
directories listed in a configuration file "Bases\DirectoriesForEG.td". The directories paths should
look like this:
D:\path1\
D:\path2\
These are absolute paths. The correct format - each path on a separate line, no white spaces are allowed.
The length of a path cannot exceed 1000 chars, and there cannot be more than 100 paths. A path should
end with '\'. During tablebase generation, temporary files (with extensions ".tb _" and ".tb __" )
will be in the 'Bases' directory. The hard disk must have enough free space (The program will show at
a type selection for generation). It should be formatted to NTFS, since FAT/FAT32 don't allow files
of more than 4Gb (The such can be necessary). Minor end-games - can be moved anywhere.
The button "Stop and save" works only after 2->3 iteration. If your system doesn't have enough RAM,
it will take 10-100 times more to generate the tablebases due to work with swap file. The program
cannot load the CPU up to 100% because the bottleneck is HDD performance. That is why it doesn't make
sense to run 2 instances of this program on the same HDD. But if your CPU has 4 cores, it does make
sense to attach 4 HDDs and run 4 programs simultaneously. Also, generation will faster, if HDD unite
in RAID. The recommended way to stop tablebase generation
is to click "Stop and save", or "Stop and delete". This will help to avoid possible failures
(but the probability of failure is small and without click "Stop and save"). In the course of generation,
make sure your system doesn't have hardware errors. A bad block on your HDD will make the tablebase
corrupt. You can use Windows System Events console to monitor hardware errors.
Description of ChessDLL.dll.
This project is created to make it possible to use generated tablebases for other programs. The dll has
a function 'GetEvaluateFromFEN' that accepts a position as a line, in FEN format. E.g.
"4k3/8/8/Pp6/8/8/8/4K1Q1 w - b6", or "4k3/8/8/Pp6/8/8/8/4K1Q1 w". If there is no designation of pawns
after "w" or "b" (white to move or black to move), the last should must be a symbol - 0, after 'w' or 'b'.
Correct values are: from -1999, up to 1999. If the library returns -2000 - the position is illegal, or
the tablebase doesn't exist. It is impossible to pass an illegal position to the dll.
Description of RetroChess3.
This is a chess program. Allows to analyze and search for chess positions in endgame if the corresponding
tablebase is available. The program plays from any position even if there is no tablebase, but it's not
strong, since it's been developed as a shell for endgames tablebases. Current version doesn't have a well
optimized evaluation function.
The DTZ (or rather "DTZ50+") generator I'm currently working on seems quite a bit faster (e.g. KBNvKN in just under a minute on a 2ghz core2 duo using 2 cores, 1m50 for KQRvKQ). However, it is unsuitable for 7 piece tables due to RAM requirements.
I think that all the things you need to know are found above. If you still have any puzzlement left I can probably fill you in.