Data structures for parallel search?

Discussion of chess software programming and technical issues.

Moderators: bob, hgm, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Post Reply
User avatar
WinPooh
Posts: 243
Joined: Fri Mar 17, 2006 7:01 am
Location: Russia
Full name: Vladimir Medvedev
Contact:

Data structures for parallel search?

Post by WinPooh » Wed Nov 19, 2014 11:23 am

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.


bob
Posts: 20555
Joined: Mon Feb 27, 2006 6:30 pm
Location: Birmingham, AL

Re: Data structures for parallel search?

Post by bob » Wed Nov 19, 2014 2:19 pm

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: 243
Joined: Fri Mar 17, 2006 7:01 am
Location: Russia
Full name: Vladimir Medvedev
Contact:

Re: Data structures for parallel search?

Post by WinPooh » Thu Nov 20, 2014 10:05 am

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: 870
Joined: Sun Nov 19, 2006 8:16 pm
Location: Russia

Re: Data structures for parallel search?

Post by Aleks Peshkov » Thu Nov 20, 2014 1:54 pm

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

Post Reply