Are these blocks really swapped to/from disk? Even if there is plenty of RAM and everything fits into that? Or is it just swapping to/from RAM cache?Jelle Wiersma wrote:But switching off pondering, and hence the search threads, alone does not solve it.
There can also be memory conflicts because of the memory used by the two programs for the transposition table and endgame database;
Windows will then start swapping memory blocks from RAM to- and from the disk.
Anyway, I think we can assume that both programs are equally affected by this at the start of their respective searches.
Programs such as Scan and Maximus (and Sjende Blyn, I presume) use a 6-piece egdb which is loaded entirely into RAM at program startup. So there will be no threads running that load egdbs. Kingsrow can be set to use only 6 pieces as well. I found there is very little difference in playing strength between Kingsrow 6-piece and 8-piece, maybe Ed can confirm this.Jelle Wiersma wrote:Besides the search threads, there can also be thread(s) to load the endgame database into memory, especially for 8-piece database.
These threads also need to be postponed when it is not the program's turn to do a move,
otherwise it will interfere with the other program.
As it turns out this is not as simple as running on a single computer, for Krzysztof.Jelle Wiersma wrote:Everything need to be set/implement such that it prevents interference of the two programs.
That's why I proposed to Krzysztof to use two AMD Ryzen, as in the tournament, seemed to be the most simple.
Running fair matches on a single computer never seemed a problem before in computer chess (see TCEC) and computer draughts. What do other programmers think about this?
Another matter is time usage. As far as I have observed, programs such as Scan, Kingsrow and Maximus do not use more time than is agreed. Several other programs do use more time than agreed, even showing this on their own clocks, especially when they play against strong(er) opponents and get into difficult positions. It is up to each programmer to implement this correctly, and so far this is not checked automatically.
Jan-Jaap