Author: Tord Romstad
Date: 12:30:30 02/06/04
Go up one level in this thread
On February 06, 2004 at 14:44:35, Gerd Isenberg wrote: >You may use several bitboards for several "shades of gray". > >The base with pawn bitboards is to keep disjoint sets of left and right attacks >and sets of stop squares (the pawns may push to, if empty). Next step is fill >up/down (both directions for both colors, front and "behind") all the pawns and >their disjoint attack sets. > >With all these sets you can determine all pure pawn related sets like passers, >rams, levers, defended/defendable by own pawn, attackable by enemy pawn, >backward, isolated, doubled, tripled, duos, hanging duos, chains and whatever >more. > >For a rammed pawn you may see if it is rammed "forever", since no own pawn (or >only backward or in recursive phases pawns already member of this "rammed >forever" set) may build a lever anymore. Pure pawn stuff is virtually free anyway, because it is hashed. >In further eval phases piece interactions with these pawn sets take place. This is where things start getting interesting, of course. :-) >With >rams one may look whether the attack squares or the rammed pawn are strong or >safe outposts for friendly pieces, where an equal exchange may unblock own but >even the enemy pawn (which may become a passer, if the former was no duo or >defended/defendable and had no own pawn behind). > >Considering the rank (side) is essentially, eg. to distinguish between advanced >"good" rammed pawns on 5-6. rank, like a "Nagel" on f6, or isolated b5:b6 ram >and backward a7 and bad ones on the 2-4.rank, defended by a bishop from back. > >Even if it is (sounds) expensive, you work setwise and avoid branches and loops, >no matter about the popularity of sets (except "good predictable" != zero here >and there). > >With appropriate register files (like Opteron's 16 gp-registers, Itanium or >SIMD-architectures like MMX/SSE or AltiVec) you may process a lot of independent >bitboard pattern in parallel (four or even more in one). I am more worried about slower processors. The processors you mention above are all so blazingly fast that it doesn't matter much what I do. Even my current slow and buggy engine beats me easily on my G4 550MHz, and on the Opteron it would crush me so badly that I prefer not to think about it. Optimising for such computers has no point for me; even if I managed to speed up my engine by a factor of ten I probably wouldn't even notice the difference. I don't target any specific architecture, but want my engine to run on a variety of processors ranging from StrongARM chips in handhelds to the PowerPC G5. But of course, the performance of the lower end of the scale is most important. I need to choose my data structures in such a way that they are efficient on 32-bit computers with very limited memory. Do you think bitboards are still worth a try, or should I continue to use a simpler architecture? >You already noticed Steffan Westcott's "Bitboard algorithm design principles"? Yes, I've seen them. Thanks for your advice! :-) Tord
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.