Author: Tony Werten
Date: 21:25:17 04/17/01
Go up one level in this thread
On April 17, 2001 at 16:14:02, José Carlos wrote: >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. No, actually only castle and en passant are special. All the other moves are the same. A piece disappears of the fromsquare (giving the possibility of discovered check ) and a piece appears on the tosquare (possibly giving check if the piece on the square can attack the kingsquare ) It's even easier for checking legal moves (ie not leaving yourself in check) if you were not in check to start with. Tony > 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.