Wow, does that bring back memories! I have done exactly what you described many times. I thought I was the only one.tpetzke wrote:Hi Marco,
this happened to me several times and it was always a bug.
You have to trace it down by finding the node where the difference occurs. So pick a position and perform a ply 1 search, if node counts are still in sync increase to ply 2 until you reach the depth were the the difference occurs.
Now spot the exact node. Just print every n numbers of nodes a FEN in a log. Look where the FENs for node x start to differ. Now decrease n but start outputting FENs later until you have the node.
I have found a better way - at least in unix systems it's easier to just output all the information including the node count and any relevant data that seems out of sync and then from 2 sets of logs find the diff. It may also be easy in Windows but in linux there are all sorts of easy to use tools for diff, comparing, finding what is unique, sorting and just about anything you want. For this all you need to know is the first pointer were 2 files differ.
When working on beekay (the c++ port of Komodo) there were times where I had to verify that the evaluation was the same - so I was displaying a fen string with it's evaluation. Even though the search was different I could quickly process though files and compare the positions that had the same fen and identify any glitches.
I did this same thing with the move generator, komodo has several and I would display the fen and a sorted list of moves in long algebraic - and found a couple of bugs even in komodo.
Now start to compare alpha, beta and the usual stuff in that node. Chances are the error occurred already a few nodes earlier but it manifested itself in a different FEN per node later. It takes a bit of time but at the end you'll find it.
Thomas...
