Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Professional Chess Engines in C/C++ ???

Author: Russell Reagan

Date: 09:51:38 12/24/02

Go up one level in this thread


On December 24, 2002 at 08:36:01, Arshad Syed wrote:

>If the program was twice as fast in assembly wouldn't that translate to an
>additional 100K (approx.) nodes evaluated per sec, given that avg. NPS is ~100K?

Of course. The problem is that you don't even gain one extra ply, unless your
program has a branching factor of 2.0. I know of no programs that have that kind
of branching factor consistently.

Consider this. Look at the computer chess world championships. The person with
the fastest hardware hasn't won in over a decade. That is all writing in
assembly would amount to (having faster hardware).

For some reason people are obsessed with speed in computer chess (and many other
areas in computing), but there is little to suggest that speed is what makes a
good chess program, or what makes a good 3D video game, unless (as I already
mentioned) the difference is significant. A power of two in terms of speed is
not "huge". All other things being equal, the faster engine should win most of
the games, but the fact is that "all other things" are not equal. I've heard of
programs that are twice as fast as Fritz, but some of those same programs are
barely above master level, while Fritz is capable of challenging the best humans
in the world. This phenomenon is even more clear when you look at a program like
Hiarcs. I'm sure there are a great number of programs that are twice as fast as
Hiarcs, and all but a handful (Fritz, Tiger, etc.) would stand a chance against
it.

Don't get me wrong. Increasing the speed of an engine is a good thing. It opens
the doors for you to do other things, such as create more complex search
heuristics, more complex evaluation factors, and so on. The problem is that most
people are going to have a difficult time implementing new ideas in a program
that is written in 100% assembly (at least compared to an engine written in C or
C++, or some other higher level language than assembly). Some, like Frans
Morsch, can obviously make that approach work for them. However, I think it's
wrong to say, "that is how Michael Jordon does it, so that is how I will do it,"
because let's face it, there is only one Michael Jordan, and you're not him.

This is directed towards the masses, not the exceptions. Like I said before, if
you have to ask, you're not an exception, so stick to the rule.



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.