Page 1 of 1

SMP beginner question

PostPosted: 01 Nov 2006, 18:39
by fierz
Aloha!

I just ordered a dual core machine today - so naturally I would like to adapt my checkers program so that it can use the additional power, and for that I have a lot of questions... I hope I can get some answers :-)

1) I know there are different concepts for multiprocessor engines (YBWC, DTS, etc). I'm looking for the simplest one, because I'm basically a lazy person. What would that be? I am not looking for a solution that scales well up to 1000s of CPUs, just something for the near future which is duals and quads (IMO).

2) after giving an answer to 1), would you know of a good description of how to implement it? and available online?

3) My program plays checkers, not chess, and that means that I typically only have 10 moves or so instead of ~40 like in chess. Does that change your answer to 1)?

4) My program uses MTD(f) instead of PVS - does that change your answer to 1)?

cheers
Martin

Re: SMP beginner question

PostPosted: 01 Nov 2006, 19:25
by Tord Romstad
Hello Martin!

fierz wrote:I just ordered a dual core machine today


Congratulations! :)

1) I know there are different concepts for multiprocessor engines (YBWC, DTS, etc). I'm looking for the simplest one, because I'm basically a lazy person. What would that be? I am not looking for a solution that scales well up to 1000s of CPUs, just something for the near future which is duals and quads (IMO).


I would recommend YBWC, which works fine with up to 4 CPUs, and which doesn't require you to do any major changes to your existing search. Implementing a dual-CPU version of YBWC is easy and fun, a general N-CPU version is trickier, but still not too bad.

2) after giving an answer to 1), would you know of a good description of how to implement it? and available online?


I learned most of what I needed from chapter 3 in Valavan Manohararajah's thesis. There are also a few open source chess programs you can look at: Crafty, Scorpio and Glaurung all do parallel search. Crafty and Glaurung both use something similar to YBWC, I am not sure what Scorpio does.

I also have a simplified and thoroughly lobotomized Glaurung version called Viper which is meant to be an instructional example for parallel search beginners. My goal is to make it the "TSCP of parallel search", but unfortunately I am still quite far from achieving this goal. The current version is still far too complicated, and suffers from too few comments.

Of course there might also be some nice parallel checkers programs you can study, but you probably know more about that than I do. :)

3) My program plays checkers, not chess, and that means that I typically only have 10 moves or so instead of ~40 like in chess. Does that change your answer to 1)?


Probably not.

4) My program uses MTD(f) instead of PVS - does that change your answer to 1)?


I don't think so. Actually I think implementing a parallel search with MTD(f) should be slightly easier, because you never have to adjust alpha or beta and and tell all relevant threads about the new values. You can simply stop all threads which work on the sub-tree whenever a cutoff occurs, which should be a bit easier.

Good luck!

Tord

Re: SMP beginner question

PostPosted: 01 Nov 2006, 19:58
by Volker Pittlik
Tord Romstad wrote:Hello Martin!

fierz wrote:I just ordered a dual core machine today


Congratulations! :)
...


I did it yesterday :-)

SCNR

Volker

Re: SMP beginner question

PostPosted: 07 Nov 2006, 07:49
by Marc Lacrosse
Volker Pittlik wrote:
Tord Romstad wrote:Hello Martin!

fierz wrote:I just ordered a dual core machine today


Congratulations! :)
...


I did it yesterday :-)

SCNR

Volker


So did I too on sunday
(Intel core duo E6600)

:-)

Marc

Re: SMP beginner question

PostPosted: 08 Nov 2006, 19:15
by Tony Thomas
Martin, do you still work on Muse?

Re: SMP beginner question

PostPosted: 09 Nov 2006, 23:47
by fierz
Unfortunately no more Muse for the time being :-(
I was frustrated with the lack of progress I experienced, and didn't want to write yet another Fruit clone - so I decided to work on the chess program in my brain. However, I am now also slightly frustrated with the progress there (http://www.fide.com/ratings/id.phtml?event=1302132), and perhaps I'll return to Muse at some point....

cheers
Martin

Re: SMP beginner question

PostPosted: 19 Nov 2006, 15:56
by Tony Thomas
I dont see anything wrong with your Fide elo progress, at least its not going down. You probably defeat your program all the time may be its time for you to train against that other engine, its name begin with an R, but I cant seem to remember the name. :mrgreen: I wasnt aware that you were such a strong player, you are probably in the top 5 when it comes to the strongest chess programmers.

Re: SMP beginner question

PostPosted: 19 Nov 2006, 16:34
by H.G.Muller
I wanted to give myself a new laptop for Christmass (or better yet, the Dutch equivalent on Dec 5, "Sinterklaas" :wink: ), because those Core 2 Duo (Merom or Conroe) CPUs really make me drool. I had my eyes set on the T7200 (2GHz, 4MB L2, EMT64).

I suppose it would be an extremely stupid thing to do, however. There are still only very few laptops that feature the Merom, and the few that do aren't really to my liking. (They almost all have 15.4" displays, making them way to big to conveniently carry them around.)

Furthermore, one of the big attractions is that it is a 64-bit machine, and I wouldn't be able to use that on the OS that I get with it now. So I'd better wait to when they introduce Windows Vista (Jan 30). I'll have to tie my hands behind my back untill then... :?

Re: SMP beginner question

PostPosted: 22 Nov 2006, 13:53
by Tord Romstad
H.G.Muller wrote:I suppose it would be an extremely stupid thing to do, however. There are still only very few laptops that feature the Merom, and the few that do aren't really to my liking. (They almost all have 15.4" displays, making them way to big to conveniently carry them around.


This one doesn't, and it also offers the advantage of a better OS than most of the alternatives. :wink:

Tord