Showing posts with label Forth. Show all posts
Showing posts with label Forth. Show all posts
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.
Wednesday, March 19, 2008
64-bit Forth
One of the limitations in building larger EGDB lies in the biggest continuous memory that can be allocated in 32-bit system. Theoretically, 4G can be allocated. However, I can only manage to allocate around 1.4G in VFX Forth in my 32-bit intel box running Windows XP. I had a 4 core 64-bit system for a long time, but the 32-bit VFX Forth system can only get 1.4G memory again even though I have 8G sitting on the main board. Due to this reason, the biggest endgame databases I can build are with 11.2G (1.4G x 8) elements. As far as I know, there is no 64-bit Forth available for Windows at this time. The only one I know is gForth for Linux. Recently, I installed Ubuntu linux on my 64-bit system and tried out gForth. Converting my endgame program to gForth and to 64-bit is surprisingly easy. Suddenly, I have the capacity to produce endgame databases larger than the ones with 11.2G elements. Unfortunately, gForth is not known for its speed. It is estimated to be about 10x slower than VFX Forth for my endgame program. I am now testing 64-bit iForth. Since it is still in alpha stage, there is still long way to go. I shall update the progress here.
Friday, November 16, 2007
Forth
For people who wonder why the "lpforth.forthfreak.net" domain name, here is the explanation.
The Chinese Endgame Databases Project started when I wanted to write a Chinese chess program to beat some of my friends. Naturally, I use my most proficient programming language "Forth" to write the program. Forth is a peculiar language that some people just grow inert in using it after they obtain the ability. I am one of them. Over the years, I even wrote a couple of compilers for it. One runs under Linux environment (lpforth), the other runs under Palm OS (ppforth). lpforth actually stands for "Linux pForth", and not something else. ppforth stands for "Palm pForth". When I first had my EGDB server running, I had an IP address as web address. One of the Forthers, Lothar Schmidt, saw it and provided me with "lpforth.forthfreak.net" domain name free of charge. My thanks to Mr. Schmidt.
The Chinese Endgame Databases Project started when I wanted to write a Chinese chess program to beat some of my friends. Naturally, I use my most proficient programming language "Forth" to write the program. Forth is a peculiar language that some people just grow inert in using it after they obtain the ability. I am one of them. Over the years, I even wrote a couple of compilers for it. One runs under Linux environment (lpforth), the other runs under Palm OS (ppforth). lpforth actually stands for "Linux pForth", and not something else. ppforth stands for "Palm pForth". When I first had my EGDB server running, I had an IP address as web address. One of the Forthers, Lothar Schmidt, saw it and provided me with "lpforth.forthfreak.net" domain name free of charge. My thanks to Mr. Schmidt.
Subscribe to:
Posts (Atom)