Page 1 of 4

When should I consider parallel search ?

Posted: Sat Jun 10, 2017 7:56 am
by MahmoudUthman
My engine could Currently fall anywhere between 2700:2900 by my estimate on the CCRL single threaded list , when should I consider converting to a parallel search implementation ? I haven't done any optimization yet whether to the search or the evaluation and I haven't implemented any razoring

Re: When should I consider parallel search ?

Posted: Sat Jun 10, 2017 9:34 am
by mar
What kind of question is that? Are you able to make your own decisions? :)
Do whatever you want and when you see fit.
LazySMP is trivial to implement and can be done in less than a week (even less if you can afford to work fulltime on it).

Re: When should I consider parallel search ?

Posted: Sat Jun 10, 2017 10:31 am
by hgm
Never consider parallel search. It is an inefficient usage of resources.

Re: When should I consider parallel search ?

Posted: Sat Jun 10, 2017 4:11 pm
by cdani
hgm wrote:Never consider parallel search. It is an inefficient usage of resources.
?

Re: When should I consider parallel search ?

Posted: Sat Jun 10, 2017 5:24 pm
by hgm
Scaling is never perfect, the various threads will always duplicate some of each other's work. So it is more efficient to run single threaded.

Re: When should I consider parallel search ?

Posted: Sat Jun 10, 2017 6:03 pm
by cdani
hgm wrote:Scaling is never perfect, the various threads will always duplicate some of each other's work. So it is more efficient to run single threaded.
As you sure know an engine playing with 2 cpus play stronger than playing with only one cpu :-) Or maybe I did not understand where you want to go.

Re: When should I consider parallel search ?

Posted: Sat Jun 10, 2017 6:05 pm
by Henk
It's about nodes per euro.

Re: When should I consider parallel search ?

Posted: Sat Jun 10, 2017 6:09 pm
by cdani
Henk wrote:It's about nodes per euro.
I'm about elo per euro :-)

Re: When should I consider parallel search ?

Posted: Sat Jun 10, 2017 6:26 pm
by hgm
cdani wrote:As you sure know an engine playing with 2 cpus play stronger than playing with only one cpu :-) Or maybe I did not understand where you want to go.
But you can run twice as many engines that use 1 CPU on the same hardware. If you let each of those think twice as long, they are each stronger than the 2-CPU engine. And you still get the same number of moves per second.

Letting them think longer is a more efficient way to get more Elo than parallel search.

Re: When should I consider parallel search ?

Posted: Sat Jun 10, 2017 6:43 pm
by cdani
hgm wrote: Letting them think longer is a more efficient way to get more Elo than parallel search.
Sure, only that you will not be able to do it in a tournament :-)