Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Revisiting movepath enumerations of the initial position

Author: Steven Edwards

Date: 00:22:07 08/12/03

Go up one level in this thread


On August 12, 2003 at 00:40:33, Dann Corbit wrote:

>Is CT available?
>
>I would like to play with it.

I will likely make CT available to interested testers as its classes are further
elaborated.  It is far from complete at this point in time.

Independent reviewers are needed to test the portability of the toolkit.  At the
moment I am working with both iAPX86 and PowerPC hardware and with OpenBSD and
Linux software.  (Note: I do not use any products from Microsoft due to, in
part,  Microsoft's support of Palladium a.k.a., "Trusted Computing".)

CT has been designed from the beginning to be mulithreaded and it relies upon
the POSIX pthread library.  Although the underlying thread access code is well
abstracted, it may prove difficult to port to environments that do not have
pthread support.

CT, like all decent C++ projects, has no externally scoped variables, so its
multithreaded nature makes it easy to take adavantage of SMP in a clean way, and
also it allows distributed processing support in a heterogeneous environment.  A
number classes have their new and delete operators overridden for both
efficiency and for thread safety and without the need for critical sections and
their resulting runtime overhead.

One of the cool things that can be done with CT is a fast cook finder.  Notice
that it is often faster to, say, find a mate in six than to prove that no mate
in four exists.  With CT, a cook search on a mate-in-N position can be performed
by launching N concurrent threads each with the goal of looking for a mate in N.
 Such a search would also be useful for scanning GM games for missed mates.

CT is divided into two parts: the foundation part and the workbench part.  The
foundation is fairly close to all the support routines that have come to be
expected in a chess engine, and it is designed with runtime speed as one of hte
primary goals.  The workbench is a compiler/interpreter programmed in a Lisp
subset that accesses the foundation classes.  The idea is that there is a
qualitative difference between low level and high level chess programming
concepts; why use the same programming language for the expression of both?
Bit-fiddling may be the way to stronger chessplaying programs, but it is a dead
end with respect to the larger field of artificial intelligence.



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.