Author: José Carlos
Date: 13:14:02 04/17/01
Go up one level in this thread
On April 17, 2001 at 15:16:46, Tony Werten wrote: >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. I'm trying something like that in my new rewrite, but it's much more complicated. Consider en passant captures (which removes an enemy pawn), a promotion (which makes a new pice to appear on the board), castling, captures... You must check for _many_ special cases. That's my approach now, but I'm really far from finishing it, because the more I implement, the further I realize I'm from catching all cases. Anyway, I can very well be wrong, and actually be very close to the end... I hope so :) José C. >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 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.