Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Announcement: Work in progress

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.