syzygy wrote:I think I read somewhere that in-check positions are no longer compressed out.
From what I have read, in-check positions (ROBBO_SCACCO) being don't-cared was/is the main difference between "Old" and "New" triplebases. The latter seem not to be supported currently (to the chagrin of various users).
BB+ wrote:something like a Huffmann coding prior to the run-length encoding
I think I found what I meant. In the RobboBuild stuff, there is some RobboTripleHuffman.c code, and the Internal_RLE() function seems to be able to use this. From what I can tell, this post-processes the RLE tokens. However, there is "#if 0" code (with the comment "unhappy") that ensures that it does not do so in practise. Looking back, in the 999950 tarball, RobboTripleValue.c has a GetDataHuffmann() function might be able to read the resulting data. That function seems to have been dropped in the current RobboBaseLib scheme. [Probably just applying a Huffman encoding (rather than bzip2) to the RobboTripleBase files will suffice to show that they shrink by some percentage].
syzygy wrote:Speed would be the reason, but maybe the Triplebases can indeed be probed sufficiently fast. I have not tried it yet with my WDL tables. Run-length encoding could give Robbobases an edge here.
I don't know for a fact, but I would think that serialising the position and computing the indices would be comparable time to decoding/stepping-thru 64-byte segments (or half that on average).
BB+ wrote:For that matter, I'm not really sure that the data locality for 6 piece endgames is good enough for their "weak loading" mechanism to be that great [...]
I had thought that one of the Chinook papers discussed this (along with other I/O issues) in the checkers context, but if so can't find it. My recollection was that they had 99% cache hits with 100MB of buffers (in 1K chunks), but of course 99% means that 1% of the time you are accessing disk, and that will dominate.
EDIT: Regarding Chinook: "The databases have been organized to increase data locality ... The result is that the program, using 200 MB of page buffers ends up doing one disk I/O for an average of 500 data position value requests." They then note that the early 90s and 10 years later had different I/O and cpu splits.
RobboWarrior wrote:Again RobboBases shine superior in every all ways. [...]
I'm not sure whether this a technical report or a promotional brochure... It does seem correct about the Robbo stuff (or at least I've seen what it says echoed elsewhere), though it doesn't address the speed of probing (other than to talk a bit about indexing).