Author: Robert Hyatt
Date: 09:18:58 11/21/04
Go up one level in this thread
On November 20, 2004 at 23:18:19, Daniel Shawul wrote: >On November 20, 2004 at 22:33:26, Robert Hyatt wrote: > >>On November 19, 2004 at 23:15:44, Daniel Shawul wrote: >> >>>On November 19, 2004 at 11:28:34, Anthony Cozzie wrote: >>> >>>>Well, I also did a pretty complicated algorithm, and I designed my own. If you >>>>borrowed someone else's things might go easier for you, although I think that >>>>takes a lot of the fun out of it. >>> >>> Did you create your complicated algorithm ,after sitting back and thinking? >>>Well if that is the case you are more Genius! >> >> >>This is >> >>(a) silly; >> >>(b) poor programming >> >>You do _not_ start writing code and then try to figure out how it is going to >>work. Any good software engineering textbook/course will show you this. Coding >>is the _final_ part of the development effort, not the first. Otherwise the >>effort is multiplied by a factor of X, where X is large. As is the testing and >>debugging multiplied also... >> > Have you read what i wrote down below before replying to this message? >I said if you are going to create something , you should have something to >work on. That is simply false. You design _first_. You program _second_. You are doing it backward. How can you possibly write code when you don't know how/where/when you are going to split, what has to be done to do a split, how the threads are going to interact to share what needs to be shared, without sharing things that have to be local, etc? You are saying you can't design something without having something already written to work on. That's circular. Not to mention incorrect... > For example it is hard for me to work/think on how i should split >search,when i don't have something to test my ideas on. You know that >chess is all about testing. something you never expected to work works when >testing and vice versa. If you plan on hacking and testing, repeated for a _long_ time, that is the way to go. The first parallel version of Crafty (version 15.0) was designed, then written, after the complete approach had been considered, designed, and carefully evaluated... only _then_ did the first line of code get written. > However i also agree i have to have some kind of design for parallel search >splitting. In my opionon , you can start coding everything up to the point you >start splitting (where the real sciece of parallel search comes). As i said >before in previous message, the thing before that is all about programming >skill,nothing special. collect your global data,create/destroy >threads,lock/unlock etc. The problem is you can't do that. If you code everything up, you put yourself into a straightjacket that will force your design down the pathway that fits the initial program changes. IE if you are going to do a DTS like algorithm, you have to dump your recursive search and rewrite it as a single search function that uses a loop to step through the tree rather than recursive calls. But doing that would be silly if you don't intend on doing a DTS type search. Hence the idea of _first_ designing the parallel search, then writing or modifying code to produce a framework that will support that design...
This page took 0.01 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.