Author: Dan Honeycutt
Date: 10:20:26 11/22/04
Go up one level in this thread
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.
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.