ChessUSA.com TalkChess.com
Hosted by Your Move Chess & Games
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

"Simplified ABDADA" updated
Post new topic    TalkChess.com Forum Index -> Computer Chess Club: Programming and Technical Discussions Flat
View previous topic :: View next topic  
Author Message
Tom Kerrigan



Joined: 03 Jul 2015
Posts: 64

PostPost subject: Re: "Simplified ABDADA" updated    Posted: Sat Dec 02, 2017 6:30 pm Reply to topic Reply with quote

nionita wrote:
Hi Tom,

Many thanks for the write up!

I followed your ideas and implemented simplified ABDADA in Barbarossa (up to step 6, but without cutoff checks yet). I skipped some of the preparation steps which were meant basically to make sure the implementation is correct so far.

In my own tests I got ~80 Elo for 2 cores, which is in accordance with the theory. Not sure how it scales further, I will need more tests.

The multi threading Barbarossa will be used in next HGM tournament.


That's great! I'm glad it's working well and that you (presumably) found it useful!

Quote:
There were some technical complications with:
- LMR: when I defer a move, it will be played at the end with the "later" reduction (not sure if this is correct)


I haven't tried LMR (I know, I know) but I suspect this isn't correct. What you could do is, as you're deferring the move, record the depth that you WOULD have searched the move at.

Quote:
- re-search (because I use PVS): I think you already stated that in this case the "currently searching" of that move should be deleted, so that other threads eventually help with the re-search: I implemented this idea, but I'm not sure if it is quite correct or if it has any effect without synchronization between threads


Here's the rationale: when you mark a move as currently being searched, the theoretical idea is that you're dividing up work between threads, but the PRACTICAL effect of doing that is to make other threads search that move later.

When you're re-searching a move because of a null-window failure, that means the move is very likely to fail high or at least change alpha, so that's important search information that every thread should ideally know before searching any subsequent move. So the last thing you want your threads to do is skip over the move that's failing. So that's why it shouldn't be marked as currently being searched.

So that's the theoretical explanation. In practice, the benefit is small but measurable with my chess engine. Hope this helps!
Back to top
View user's profile Send private message
Display posts from previous:   
Subject Author Date/Time
"Simplified ABDADA" updated Tom Kerrigan Tue Aug 29, 2017 5:11 am
      Re: "Simplified ABDADA" updated Michel Van den Bergh Tue Aug 29, 2017 6:23 am
            Re: "Simplified ABDADA" updated Tom Kerrigan Tue Aug 29, 2017 6:34 am
                  Re: "Simplified ABDADA" updated Nicu Ionita Fri Nov 24, 2017 2:16 pm
                        Re: "Simplified ABDADA" updated Tom Kerrigan Sat Dec 02, 2017 6:30 pm
                              Re: "Simplified ABDADA" updated Nicu Ionita Tue Dec 05, 2017 9:40 am
      Re: "Simplified ABDADA" updated Jean-Christophe WEILL Wed Dec 13, 2017 7:47 pm
            Re: "Simplified ABDADA" updated Tom Kerrigan Thu Dec 14, 2017 2:17 am
Post new topic    TalkChess.com Forum Index -> Computer Chess Club: Programming and Technical Discussions

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum




Powered by phpBB © 2001, 2005 phpBB Group
Enhanced with Moby Threads