Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: A Question Of Speed

Author: Tony Werten

Date: 23:43:08 11/15/00

Go up one level in this thread


On November 15, 2000 at 22:57:05, Michael Neish wrote:

>On November 15, 2000 at 22:30:41, James Swafford wrote:
>
>>There are lots of variables here. :-)
>
>Of course I'm aware of that, but I thought there may be a simple explanation.  I
>converted my program to bitboards some time ago, and it ended up slowing down
>the program by about 30%, although I think it's worth it in the long run.  Of
>course I'm using quiesce(), and counting all nodes in search() and quiesce() --
>separately, just to see the proportion of nodes searched in each.  I use lazy
>eval, but at the moment generate caps and non-caps together.  Separating them is
>next on my list, though I don't think that it will make up for the huge
>difference, do you?

Hi Mike,

seperating captures and non captures makes a lot of difference.

>Yes I can fail high before generating moves if the hash
>score says so.

So in this case you didn't generate at all. ( generate anyway and see the
slowdown.You are giving away a lot more cycles)

1 do hashmove if it's allowed.
2 generate (and do ) captures (exclude hashmove if it's a capture!)
3 do killermovesif the're allowed.
4 generate ( and do ) non captures. (exclude played killermoves and noncapture
hashmove)

If you do this basic stuff, you don't have to generate non-captures very often (
less than 30% I guess ) wich is nice because they are the biggest bunch.

>I also use mva/lva and return early from quiesce() if the
>captured piece doesn't bring the score high enough.  I also do a little bit of
>futility pruning, but not really enough to affect speed I think.

It shouldn't. Using SEE will give you a slowdown, but saves nodes as well.

cheers,

Tony


>
>In your experience, what sort of gain could I expect from generating captures
>and trying them before generating non-captures?  By the way, I generate moves
>before trying the hash move (though it's placed first on the list).  Surely
>there's a lot of optimisation possible here.  But again, is it enough to make up
>the difference?
>
>Oh, and by optimisation I mean "hand optimised".  I have a lot of diagnostics
>running, and some experimental stuff which I'll optimise if worthwhile.  I'm
>using CodeWarrior Pro 5 with all optimisations on full, of course.
>
>Thanks for your reply.
>
>Mike.
>
>
>
>>--
>>James



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.