Data structures for parallel search?

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

User avatar
WinPooh
Posts: 267
Joined: Fri Mar 17, 2006 8:01 am
Location: Russia
Full name: Vladimir Medvedev

Data structures for parallel search?

Post by WinPooh »

I want to rewrite my engine in a more structured way, and add multithreading to it. What I need is a good reference implementation of parallel search with some comments in source code. I took a look at Viper, but understood almost nothing. It does not even compile on my computer (MSVC 2008).

My current background is:
- understanding of general chess programming concepts to a certain degree (GreKo, CCRL ~2500)
- having read some PDFs about parallel algs: PV-Split, YBW, etc.
- more than 10 years experience in writing parallel applications for production (finance, telecom). So basic things like mutexes, events, race conditions etc. are familiar to me.

Now I wish to combine these parts of knowledge, but don't know where to start from :)
Could anybody please help? Thanks in advance.
User avatar
Fabio Gobbato
Posts: 217
Joined: Fri Apr 11, 2014 10:45 am
Full name: Fabio Gobbato

Re: Data structures for parallel search?

Post by Fabio Gobbato »

bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Data structures for parallel search?

Post by bob »

WinPooh wrote:I want to rewrite my engine in a more structured way, and add multithreading to it. What I need is a good reference implementation of parallel search with some comments in source code. I took a look at Viper, but understood almost nothing. It does not even compile on my computer (MSVC 2008).

My current background is:
- understanding of general chess programming concepts to a certain degree (GreKo, CCRL ~2500)
- having read some PDFs about parallel algs: PV-Split, YBW, etc.
- more than 10 years experience in writing parallel applications for production (finance, telecom). So basic things like mutexes, events, race conditions etc. are familiar to me.

Now I wish to combine these parts of knowledge, but don't know where to start from :)
Could anybody please help? Thanks in advance.
One easy suggestion is to look at most recent Crafty source. In particular, look at search.c and thread.c and read the comments. Some are quite long, but give detailed descriptions of what is done, when, how and why...
User avatar
WinPooh
Posts: 267
Joined: Fri Mar 17, 2006 8:01 am
Location: Russia
Full name: Vladimir Medvedev

Re: Data structures for parallel search?

Post by WinPooh »

Fabio Gobbato wrote:This topic was very useful to me

http://talkchess.com/forum/viewtopic.ph ... tithreaded
Yes, this is almost exactly what I look for. Thanks a lot!
Robert Hyatt wrote:One easy suggestion is to look at most recent Crafty source. In particular, look at search.c and thread.c and read the comments. Some are quite long, but give detailed descriptions of what is done, when, how and why...
Thank you! How could I forget about Crafty? Back when I was writing early versions of GreKo I had tried and tested tons of ideas from development log in Crafty's main.c...
Aleks Peshkov
Posts: 892
Joined: Sun Nov 19, 2006 9:16 pm
Location: Russia

Re: Data structures for parallel search?

Post by Aleks Peshkov »

WinPooh wrote:It does not even compile on my computer (MSVC 2008).
Free Version of Visual Studio Professional 2013!