Empirical results with Lazy SMP, YBWC, DTS

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

EvgeniyZh
Posts: 43
Joined: Fri Sep 19, 2014 4:54 pm
Location: Israel

Re: Empirical results with Lazy SMP, YBWC, DTS

Post by EvgeniyZh »

bob wrote:
EvgeniyZh wrote:Would be interesting to see how they behave on really high number of cores, like 32 or 64 cored server. Does DTS still scales well?
That's a poorly phrased question. DTS +can+ scale pretty well. But like every computer algorithm, it can be coded in ways that are less efficient. I might have actually beaten DTS with the new algorithm. I am running big tests right now to see if this holds up.
Well then I'll rephrase it: how well _can_ DTS scale at really high number of cores (32-128)?

And a new faster algorithm sounds very interesting. Are you going to implement in chess engine (Crafty?)? When are you going to publish it, if at all?
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Empirical results with Lazy SMP, YBWC, DTS

Post by bob »

EvgeniyZh wrote:
bob wrote:
EvgeniyZh wrote:Would be interesting to see how they behave on really high number of cores, like 32 or 64 cored server. Does DTS still scales well?
That's a poorly phrased question. DTS +can+ scale pretty well. But like every computer algorithm, it can be coded in ways that are less efficient. I might have actually beaten DTS with the new algorithm. I am running big tests right now to see if this holds up.
Well then I'll rephrase it: how well _can_ DTS scale at really high number of cores (32-128)?

And a new faster algorithm sounds very interesting. Are you going to implement in chess engine (Crafty?)? When are you going to publish it, if at all?
Unknown. Current crafty seems to scale OK up to 32. I have hardly tested beyond that. There's nothing that particularly limits DTS, except for the programmer. The more locks one resorts to, the worse it will scale...

Once you work with parallel search for a good while, the potential race conditions become pretty obvious; the trick is to reduce waiting and locks. Like any other kind of programming algorithm, it can be done well or poorly.