Author: Steven J. Edwards
Date: 21:02:57 05/27/98
Go up one level in this thread
Some more details: 1) It is not yet quite ready for wide area distribution; there is no external documentation - yet. 2) I will probably use ftp when the time comes to pass it around, but I may be convinced to use uuencoded gzip tar archive text via e-mail to interested researchers IF it is understood that it is a rough work in progress. I'd rather spend time improving/completing it than handling detailed support questions. 3) There is currently no general purpose search. There is an exhuastive mate in N search (you pick N) that I use for testing most of the chess support routines. However, with the hash system, the material balance system, and the full bitboard database system already done, it won't take too much to cobble together a search. A TECH-style search would only take a page or two of code. 4) Interoperatibility is on the list. But the most imporatnt reason for putting this together is to provide a C++ toolkit for standards support and tablebase support. 5) Running on a P233 (Linux/g++), the program can enumerate trajectories (move generate, execute, legality test, retract) at a rate of about 140,000 per second. This includes material balance and hash code incremental updating. The rate slows a bit when the complete bitboard database is incrementally updated; the number is somewhere around 75,000 per second. The numbers for a Macintosh PPC604e 200MHz are slightly lower for the first figure and slightly higher for the second. 6) As with Crafty, there is a position enumeration command for EPD files. This has helped test both OCD move generators for many different positions (WAC 300 and WCSAC 1001). Also, the current position can be enumerated, and the Macintosh counted all 3,195,901,860 different seven ply trajectories form the initial array in about 26,000 seconds (about 123 KHz node rate). 7) The command line interface accepts and displays EPD and FEN for accessing the current position. Moves may be entered and are carefully deciphered if not already in SAN. Moves are played if they pass muster. Moves can also be retracted from the command line. 8) The command line interactive interface is handy for testing, but would likely dissappear when the OCD is embedded into an application. This I will leave to others with more GUI design patience than I have. I blame Ken Thompson for all of this because I got hooked on Unix shell programming back in the 70s and still to some extent think windows, icons, and mice are not needed by Real Programmers. 9) The bitboard database does not use the rotation techniques employed in Crafty. This could be done later. However, I have determined that, during move execution, it is more efficient timewise to do a copy then update rather than an update in place as the former requires no reverse updating The bitboard database is a C++ class and is about 1200 bytes long per object instance. Fortunately, today's processors are better at copying than those of yesteryear. 10) If Bob decides to do a C++ version of Crafty, the OCD will replace the embedded EPD support. It may be that the OCD itself could be the chess core (but not the search or evaluation) of a C++ Crafty. 11) The current OCD is not multithreaded, but I am seriously looking into it. There are some tricky overrides of the new and delete operators for move nodes and move lists that make multithreading a nontrivial task. 12) The Mac version has an option for displaying some are all of the "current" bitboard database in a style reminiscient of 1950s science fiction movies with computer "displas" is of lots of blinking lights. This has little practical purpose but does help to show that the program has not locked up in a long calculation. 13) There are only six or so global variables; these track the position as set up by the command processor and maybe could be re-implemented as static members of the command verb class. 14) The coding style is VERY consistent; more so than the ANSI C SAN Kit or the EPD support package. -- Steven (sje@mv.mv.com)
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.