Author: David Rasmussen
Date: 08:21:17 12/18/01
Go up one level in this thread
On December 18, 2001 at 07:27:47, Steve Maughan wrote: >I'm thinking about implementing pondering in my chess progam. I guess I have >two options - either create a separate thread for the engine or use some form of >loop that checks for input and responds accordingly. The latter seems like a >pseudo thread and may take up significant processor time. I have never written >a program that creates separate threads and I guess that if I do go down that >route I'll have to deal with syncronization and other unknown complications. > >Do others create separate threads? Are there any advantages / disadvantages >with creating a separate thread for the search? What effect will it have on the >speed? Will it mean that in the long-run it will be able to interface more >smoothly with the GUI? Are there any simple solutions? > >All help appreciated! > >Regards, > >Steve Non-threaded: Pro: You will not have to deal with threading. That means you won't have to find a semi-portable way of doing threading, and also, you wont have to learn anything about the subtleties of concurrent programming (mutual exclusion, races, etc.) Con: The design will be messier, potentially a lot messier, if you aren't careful. Threaded: (conversely) Pro: The design will be very elegant and simple once you have your primitives working. Con: You'll have to learn a (very) little bit about concurrent programming, and you'll have to choose a threading library that works on your favorite platforms, since there is not portable way of threading in, say, C or C++. I thought it was an exciting task to make as good a non-threaded design as possible, so I did it non-threaded. But if you're starting from scratch, you might as well go for a threaded version. It can be difficult and error-prone to do it non-threaded, and once you've learned a little bit about threading (which is always a good thing, learning is), you have the benefit of a clean design and also, you are ready to make your search multithreaded as well (not as simple, but you'll still have to learn the basics for that anyway). /David
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.