Computer Chess Club Archives




Subject: Re: Parallel algorithms in chess programming

Author: Vincent Diepeveen

Date: 05:10:17 04/17/01

Go up one level in this thread

On April 16, 2001 at 22:53:34, Eugene Nalimov wrote:

>On April 16, 2001 at 22:07:10, Robert Hyatt wrote:
>>On April 16, 2001 at 18:15:52, Dieter Buerssner wrote:
>>>In a different discussion, Vincent wrote the following:
>>>>It is not difficult to implement the form of parallellism as used by
>>>>Rudolf. Invented by a frenchman who couldn't spell a word english and
>>>>who wrote an impossible article for JICCA (did anyone proofread it at
>>>>the time as i'm pretty sure they didn't get his parallel idea?).
>>>>At the time when i read the article i was pathetically laughing about it
>>>>actually as i also didn't get the idea of the frenchman. But it appears
>>>>everyone who can make a chessprogram work under win2000 can also get
>>>>within an afternoon his program parallel to work. Then some debugging
>>>>and a day later it works cool.
>>>I'd be very interested in this algorithm, that can be implemented at an
>>>afternoon :-)
>>>Could you point elaborate on this.
>>>BTW. In Paderborn, Roland Pfister also told me, that he knows this from Rudolf
>>>Huber, and he even started to explain it to me. Somhow, we (or me) got
>>>distracted, and I cannot remember the essential things.
>>>What I remember is, that the time consuming work, of making your
>>>search/evaluation routines free from all those global variables is not needed.
>>Global variables will _always_ be a problem.  Unless you avoid threads
>>altogether and use separate processes.  But then you incur other penalties
>>you have to solve...
>Visual C allows you to declare the global variable as "thread-specific", i.e.
>each thread will have its own copy of the variable. Compiler generates special
>code to access such a variables.

In assembly this goes to nearly the same as global optimized
variables in fact, so it would work very well, EXCEPT that my engine is
ansi-c and i like to keep it portable. In ansi-c there are no thread global
variables REGRETTABLY.

I find it personal a big lack of ansi-c that it doesn't have it, whereas
64 bits variables nowadays ARE included into it.

There are in many unix clones thread global variables but i couldn't find
them for linux regrettably, otherwise i would probably rewrite my
multiprocessor version to multithreaded version, declaring my
global variables as thread global, as this is the only reason why i
am multiprocessor instead of multithreaded.

The penalty for everywhere an extra pointer is just TOO HEAVY.

So i was very happy when someone pointed me on these variables, and i
was very unhappy when i couldn't find them in gcc for linux.

I know many unix variations have pthread variables,
perhaps someone knows a solution for gcc-linux?

Best regards,

This page took 0.01 seconds to execute

Last modified: Thu, 07 Jul 11 08:48:38 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.