Author: Dan Honeycutt
Date: 08:22:28 11/12/04
Go up one level in this thread
On November 12, 2004 at 02:41:51, Daniel Shawul wrote:
>On November 11, 2004 at 10:48:39, Anthony Cozzie wrote:
>
>>On November 11, 2004 at 09:30:05, Daniel Shawul wrote:
>>
>>>Today i finished organizing my BOARD class , and collecting some global
>>>variables so that i can make a copy of a board easily. Problem is
>>>I use 0x88 and piecelists which need huge for loops to copy. BITBOARDs look
>>>easier. Is this too much of a problem? I am saying this because i think i have
>>>to make a copy of the board each time a node is split.
>>>daniel
>>
>>(from you-go-girl thread)
>>1. Nf3xe5[S] Qd8-e7 2. Bf5-e4[S] d6xe5[S] 3. Be4xb7[S] Nf4xe2 4. Ke1xe2[S]
>>Qe7xb7[S] 5. Qc3xe5[S] f7-f6[S] 6. Qe5-e6 Rf8-f7 7. b4xc5 b6xc5 8. Bb2xf6 Nb8-c6
>>9. Qe6-d5 Ra8-e8 10. Ke2-f1[S] Nc6-d4 11. Qd5xb7 Rf7xb7 12. Bf6xd4
>> = (1.15) Depth: 14/43 00:08:30.99 609709kN (1193 KN/s, 4649 splits, 459 aborts)
>>
>>Note that the program split only 5000 times in 8 minutes.
>>
>>I am with Bob on this one; split overhead is important but not THAT important.
>>
>>anthony
>
>Copying Board is relatively easier as compared to copying some other
>stuff that should be copied.
>
> SEARCH_THREAD
> {
> BOARD
> move[250]
> score[250]
> History[400] //all moves of a game
> SEARCH_INFO
> SEARCH_COUNTS
> Killers
> etc..
> }
>After doing all that, i finally manged to make a copy of
>a search_trade that can run independently! my search_trades
>share only hashtables (main tt,pawn tt,eval tt,history_table).
>And then i tried splitting the first root move
>
> if(move_count == 0)
> {
> copyThrade = Copy search trade
> -search(copyThrade,....)
> copy back results
> }
> else
> continue normally
>
>This worked fine. but the problem is doing only one split at the node
>already decreased the nps by 10,000?? Am I copying some unnecessary stuff
>or is this expected?
>
>best
>daniel
Hi Daniel:
First, congrats for boldly going where few have gone before. I'm a ways from
smp but I have grouped my position and search tree data with a view to
implementing that at a future date. The one thing I don't have that you do is
the game history. Without that my repetition detection looks like:
i = ply - 4; //first repeatable position
while (i >= 0) {
//check for rep in search tree
i -= 2;
}
i += history_index;
while (i >= 0) {
//check for rep in game history
i -=2;
}
A little messy but I don't the two series loops cost much extra and it would
save having to copy the game history to a new instance.
Dan H.
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.