hgm wrote: ↑Wed Feb 24, 2021 2:58 pm
Sure, but the point I tried to make that it is not easy to affect the speed of a precisely specified algorithm. While there can be an enormous difference in efficiency between different algorithms.
Although I confess that contradicting you has become kind of a habit

, I thought it important to point out that you present the comparison between one of the most advanced bitboard methods (calling it 'standard') with a very simplistic mailbox implementation, which might be 5-10 times slower than what could be achieved with state-of-the-art mailbox techniques. Otherwise the unsuspecting reader could have easily concluded that your observation reflected an intrinsic general speed difference between these board representations.
Well, I would not call my mailbox implementation that I had in Jumbo "simplistic". I can't tell whether it is really "5-10 times slower than ... state-of-the-art mailbox techniques", it is possible but I would certainly prefer a comparison to a mailbox engine in the Elo 2400-2600 range. Furthermore, some speed penalties in Jumbo (also in Perft) may result from code that is common for both board representations, so both versions would benefit from making these parts faster.
Here are some numbers I quickly copied from running the most recent public Jumbo version 0.7.0:
Code: Select all
Jumbo 0.7.0 (Mailbox)
Perft 6:
# Time elapsed: 1.61 s
# Nodes/second: 1195797
Search initial position to fixed depth 13 (time in centiseconds):
# total nodes = 13779874, QS nodes = 9029536 (65%), time = 1383, depth = 13, selDepth = 34, nps = 996375
Jumbo 0.7.0 (Bitboards)
Perft 6:
# Time elapsed: 1.13 s
# Nodes/second: 1703746
Search initial position to fixed depth 13 (time in centiseconds):
# total nodes = 13321155, QS nodes = 8298263 (62%), time = 924, depth = 13, selDepth = 38, nps = 1441683
So my "20-40%" claim was not exaggerated ...
Note that NPS in Perft is "visited nodes per second", not "counted leaves per second" which is much higher due to bulk counting.