Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Parallel algorithms in chess programming

Author: Tony Werten

Date: 12:16:46 04/17/01

Go up one level in this thread


On April 17, 2001 at 09:21:42, Josť Carlos wrote:

>On April 17, 2001 at 03:08:42, Tony Werten wrote:
>
>>On April 16, 2001 at 18:15:52, Dieter Buerssner wrote:
>>
>>>In a different discussion, Vincent wrote the following:
>>>
>>>>It is not difficult to implement the form of parallellism as used by
>>>>Rudolf. Invented by a frenchman who couldn't spell a word english and
>>>>who wrote an impossible article for JICCA (did anyone proofread it at
>>>>the time as i'm pretty sure they didn't get his parallel idea?).
>>>>
>>>>At the time when i read the article i was pathetically laughing about it
>>>>actually as i also didn't get the idea of the frenchman. But it appears
>>>>everyone who can make a chessprogram work under win2000 can also get
>>>>within an afternoon his program parallel to work. Then some debugging
>>>>and a day later it works cool.
>>>
>>>I'd be very interested in this algorithm, that can be implemented at an
>>>afternoon :-)
>>>
>>>Could you point elaborate on this.
>>>
>>>BTW. In Paderborn, Roland Pfister also told me, that he knows this from Rudolf
>>>Huber, and he even started to explain it to me. Somhow, we (or me) got
>>>distracted, and I cannot remember the essential things.
>>>
>>>What I remember is, that the time consuming work, of making your
>>>search/evaluation routines free from all those global variables is not needed.
>>>
>>>Regards,
>>>Dieter
>>
>>I haven't tried parallelism yet, but my (very) simple approach would be:
>>
>>Since my program spends most of its time in eval(), split it in evalblack() and
>>evalwhite(). No need for many changes. Haven't got a clue what the speedup would
>>be, but it's easy to try.
>>
>>cheers,
>>
>>Tony
>
>  Are you sure you spend most of your time in eval? My problem is inCheck()
>since ever. That's where my prog spends most of the time.

Then you're doing something wrong.

Take the last move. To make it easy: If it's a special move do your normal check
code.

If it's not look if the fromsquare is a queenmove from the king. If not it
cannot be a discovered check else walk from to king in the direction of that
square and look if there a checking piece. Stop if blocked.

Do the same for the to square.

If this takes more than 5% then it's time to make your evaluationfunction
bigger.

Tony

>  The good thing is that, everytime I want to improve the speed of my program, I
>know exactly where to focus on :)
>  I suggest you to profile your program to know exactly where the time is spend,
>although probably you've already done this.
>
>  Josť C.



This page took 0.05 seconds to execute

Last modified: Thu, 07 Jul 11 08:48:38 -0700

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