Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: new questions (scott gasch!)

Author: Robert Hyatt

Date: 10:03:07 11/22/04

Go up one level in this thread


On November 22, 2004 at 11:59:22, Dan Honeycutt wrote:

>I hear both sides.  When I started grad school in 1972 I gained access to a
>teletype machine hooked into the campus mainframe.  You could enter a program in
>BASIC, type run, and get instant answers.  No more card decks and waiting
>several hours wondering if your program was going to crash.  The teletype
>machine even had a paper tape that allowed you to save and reload your program.
>Not a lot faster than typing it in from scratch, but less error prone.
>
>With such awesome computing facilities at my disposal I decided it would be fun
>to write a chess program.  With no forethought whatsoever I began:
>
>10 DIMENSION B(8, 8)
>
>"There, I've got a board".  Needless to say, I didn't go far before I realized
>that some planning and design would be necessary if the program was ever going
>to actually play.  I put the program aside and worked out an outline for what
>various parts should do.  When I returned to the program I was forced to throw
>away a fair amount of code.
>
>Over the years I've developed my "style".  I do a little planning - what the
>program should look like at the top - and I begin coding the pieces at the
>bottom.  The plan grows down and the code grows up.  If I plan too much I end up
>throwing away plans as unexpected things surface as I code.  If I code too much
>I end up throwing away code for lack of a plan.  I don't claim what I do is
>best, but I'm comfortable with it and I know it works for me.  Plus I'm too old
>to change.
>
>It sounds like Daniel is proceeding in the manner that suits his style.  His
>style may also not be the best, but I believe it will work and he will succeed.
>I think he deserves a little more encouragement and a little less "that's a
>recipe for disaster".
>
>Good luck to you Daniel.
>
>Dan H.


Remember where I work.  :)  I consider it a responsibility to try to encourage
good software development techniques in students here.  Your approach is not
that far off from mainstream SD.  Design top-down, program bottom-up.  It gets a
product working more quickly.  Unfortunately, decisions you make at the bottom
of the graph turn out to be poor for things at the top of the graph, and
vice-versa.

I did Crafty as you did for your program.  I first wrote the bitboard stuff for
make/unmake, just to see if it was going to be viable on current hardware
(current 1994 hardware of course).  Once I did that, I filled in the blanks, and
re-wrote the initial stuff more than once as well, as I found that I needed more
information inside the engine and that adding it to the original design was
going to be inefficient and complicated.

But there is one major point.  In 1994 I was not a new chess programmer.  I'd
already been doing computer chess for over 25 years, and I'd even been doing
parallel search for 15 years.  Meaning that I had a lot of design experience in
computer chess, and experience guides you down the right path most of the time,
even if you design from the middle-out.

Daniel doesn't have that kind of experience related to parallel search.  Before
you can write code, you have to have _some_ idea of how you are going to split
the tree up, how you are going to manage the threads, what data is going to be
shared, how things are going to be protected, whether you are designing a toy
search for only 2 processors or a real parallel search that will work for larger
numbers of processors, recursive or non-recursive basic search, etc.  Lots of
things to think about _before_ starting on the threading stuff.

It seems pointless to let someone start in a way that is going to cause more
problems than necessary.  So I (and others) offered what I believe we all
consider to be "good advice".  Advice is free.  It can be ignored.  But most
likely there _will_ be repercussions...  Fortunately it doesn't affect me
directly or indirectly.

There is _no_ substitute for experience, IMHO...

And if you don't have it, listening to those that do is always a good way to
start.  Or one can proceed at one's own risk.  We've all done that from time to
time, but later wished we hadn't...



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.