Author: Robert Hyatt
Date: 13:24:02 11/22/04
Go up one level in this thread
On November 22, 2004 at 13:20:26, Dan Honeycutt wrote: >On November 22, 2004 at 13:03:07, Robert Hyatt wrote: > >>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... > >I hear you. I have a lot I need to do before worrying about a parallel search. >But when I get to that point I'll be looking for advice from you, Anthony, and >Daniel. > >Dan H. And some of us will answer you. Some will spend lots of time telling you how great their code is, how yours sucks, but little else. Some will give you actual ideas, or actual results, etc.. You have but to ask, of course. :)
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.