Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: The need to unmake move

Author: Jeremiah Penery

Date: 15:57:06 09/03/03

Go up one level in this thread


On September 03, 2003 at 13:06:34, Robert Hyatt wrote:

>The point for the "Crafty algorithm" is that I rarely share things among
>_all_ processors, except for the transposition/refutation table and pawn
>hash table.
>
>Split blocks are shared, but explaining the idea is not so easy.  But to
>try:
>
>When a single processor is searching, and notices that there are idle
>processors, it takes its own split block, and copies the data to N new
>split blocks, one per processor.  For all normal searching, each processor
>uses only its own split block, except at the position where the split
>occurred.  There the parent split block is accessed by all threads to get
>the next move to search.  That is not a very frequent access.  And there,
>there will be penalties that are acceptable.  But for the _rest_ of the
>work each processor does, I used a local split block for each so that they
>ran at max speed.  That was the main change...
>
>Without that "fix" it ran very poorly.  There was so much non-local memory
>traffic that performance was simply bad.  With the fix, things worked much
>better.

That's how I assumed it always worked anyway, with each processor using only its
own split block, so that there wouldn't be very many non-local accesses.  From
that perspective, there are very few non-local accesses (as you say), and NUMA
doesn't cause much problems.

I guess my assumption was wrong about that, and I've been arguing from that
position.  Thanks for the explanation.



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.