Saturday, January 24, 2009

Progress in bigger endgame construction with 64-bit Forth

In one of my previous post, I have mentioned the limitation of my previous endgame program in making larger endgame databases. One of the limitations is space, the other is time. The space limitation is due to the continuous memory size that I can allocate. In 32-bit system, it is 2G in most system. It doesn't matter if I have 8G memory in my system. Upgrading the program to 64-bit and running it in 64-bit system is what I have done. After eliminating space constraint, time constraint became the problem. My approach to this problem is to first find a faster Forth system. Marcel Handrix has implemented a very good iForth. He has recently made it a 64-bit capable to accompanying the already existing multi-core ability. I have recently modified my program so it is iForth 64-bit compatible. I also add the multi-core capability besides changing some algorithms to improve the efficiency. At the end, I think I have a program that is ~5x faster and space-limited only by hardware. Now, I am making new endgame databases with an 8-core 64-bit Linux system. Hopefully, some more intriguing endgames are now in my reach. Baring the long time needed, most of the long studied krnbbeekree should be doable. Let's see how long it takes to build these.