Hi Everyone,
This version has a lot of major bugfixes from the previous version. Pondering bug is now fixed finally. I also changed the time management. Another bug I had fixed is in the initialization of zobrist hashkeys. The program only initializes the half part of the 64 bit hash key. This would result into undefined behavior in the search as I used this hashkeys in 3 fold repetition, transposition table, pawn transposition table, and in the evaluation cache. The program now returns correct scores. I wondered how my program managed to get this strong with this bug since the very beginning. I also fixed a bug in the candidates passed pawn evaluation. The score now is somewhat stable and correct.
I started programming just a couple of years ago and my inexperience caused my program to have lots of bugs. As I rewrite my program from scratch (this is a new engine and will be out soon), I learned a lot, since I am making sure that this new program is bug-free, I realized that what I am doing with my old program is wrong and that it has some bugs.
Before I finally say goodbye to this old program and concentrate my effort into developing the new program, I would like to implement an SMP version first.
Is there a good multi-threading tutorial out there? What is the best algorithm for SMP? Where can I find example source code or example implementations, as I learned fast from studying actual code than indulging in reading the theoretical background of the algorithm. Somebody please point me into this resources.
Enjoy playing/testing with the program. Feedback is welcome. Just drop me an e-mail: ed UNDERSCORE apostol AT yahoo DOT com.
I am ambitious and someday my program will be world champion. Forgive me but this is just a self motivating technique.
Edsel Apostol