tt replacement schema for lazy threading

Discussion of chess software programming and technical issues.

Moderator: Ras

flok

tt replacement schema for lazy threading

Post by flok »

Hi,

I'm (still) trying to implement lazy threading (stockfish alike) in my program (Embla). Sofar it makes it only slower.

I have the feeling that the TT is the culprit. I tried global locking, coarse locking (1 lock every 1024 buckers), fine locking (1 lock per bucket) and no-locking. fine, coarse and no-locking behave somewhat the same. So that's probably fine.

For replacement scheme I use: if the age is different OR the depth of the new data is bigger, then replace entry.
Now I wonder: is that the right schema? Or are things missing?


regards
flok

Re: tt replacement schema for lazy threading

Post by flok »

I checked when the cutoff happens and with 1 thread this is on average after 1.87 moves but with 2 threads this is after 6.92 moves!
kbhearn
Posts: 411
Joined: Thu Dec 30, 2010 4:48 am

Re: tt replacement schema for lazy threading

Post by kbhearn »

You might need multiple entries per TT cluster to make lazy work right. And if you only have a single entry it needs to be always replace probably otherwise for the vast majority of the search the different threads will be sharing NONE of their work because the TT is filled with 'high' depth stuff that can't be replaced.