Splits per Second? -- Bob?

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

CRoberson
Posts: 2055
Joined: Mon Mar 13, 2006 2:31 am
Location: North Carolina, USA

Splits per Second? -- Bob?

Post by CRoberson »

Maybe Bob is the best to answer this?

On a 4 processor and an 8 processor machine.
How many splits per second is averaged on a
3 minute search and a 30 second search?

In other words, how many forks are done in an MP
implementation or how many threads are used/called in a
threaded implementation.
Tord Romstad
Posts: 1808
Joined: Wed Mar 08, 2006 9:19 pm
Location: Oslo, Norway

Re: Splits per Second? -- Bob?

Post by Tord Romstad »

CRoberson wrote:Maybe Bob is the best to answer this?

On a 4 processor and an 8 processor machine.
How many splits per second is averaged on a
3 minute search and a 30 second search?
I don't know, and I have no 4 or 8 CPU computer available for testing.
In other words, how many forks are done in an MP
implementation or how many threads are used/called in a
threaded implementation.
I think you misunderstand how threads or processes are used in a typical parallel search. You don't start any new threads or processes at a split point. The program is running with exactly 4 (or 8) search threads throughout the search; no thread is ever stopped or started during the search. When a thread has no work to do, it does not exit, but simply enters a small idle loop while polling for new work. At least this is how my program works, and I am pretty sure Crafty is similar in this respect.

Tord
CRoberson
Posts: 2055
Joined: Mon Mar 13, 2006 2:31 am
Location: North Carolina, USA

Re: Splits per Second? -- Bob?

Post by CRoberson »

Hi Tord,

Thanks for the reply.

Yes, I understand how it works. My need is based on an idea I have
that uses multiprocessing. I think there will be a bottleneck in the
design. I can do the math to anticipate that but I need to know
typical splits per second on a machine. I suppose info from a 2 proc
machine could be used for extrapolation purposes, but the more
processors the better. If you could tell me the info for 2 procs and
the nodes per second on the machine that would be a help.

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

Re: Splits per Second? -- Bob?

Post by bob »

CRoberson wrote:Maybe Bob is the best to answer this?

On a 4 processor and an 8 processor machine.
How many splits per second is averaged on a
3 minute search and a 30 second search?

In other words, how many forks are done in an MP
implementation or how many threads are used/called in a
threaded implementation.
pretty variable. here's some data... but before I give the data, the longer the search, in general the fewer the splits. And it really depends on whether you split at the root or not. Splitting at the root greatly reduces the number overall, at the cost of a bit of complexity (Crafty does this by default but it can be turned off since it has an adaptive algorithm that doesn't split _all_ moves at the root if there appears to be more than one "best move candidate" at the root).

the data I am giving comes from the 2006 wccc, which used an 8-cpu opteron box:

SMP-> splits=56520 aborts=4162 data=63/512 elap=2:45
SMP-> splits=50862 aborts=2666 data=62/512 elap=1:59
SMP-> splits=114475 aborts=3794 data=76/512 elap=1:59
SMP-> splits=82582 aborts=5383 data=81/512 elap=2:16
SMP-> splits=77515 aborts=4130 data=83/512 elap=1:50
SMP-> splits=58634 aborts=4375 data=66/512 elap=1:50
SMP-> splits=72702 aborts=3608 data=74/512 elap=2:13
SMP-> splits=55895 aborts=5265 data=75/512 elap=2:56
SMP-> splits=85206 aborts=5248 data=59/512 elap=2:46
SMP-> splits=194350 aborts=13904 data=63/512 elap=8:03
SMP-> splits=30633 aborts=2472 data=36/512 elap=1:50
SMP-> splits=15267 aborts=1462 data=44/512 elap=2:43
SMP-> splits=99315 aborts=4128 data=39/512 elap=3:04
SMP-> splits=50100 aborts=3046 data=57/512 elap=2:26
SMP-> splits=40815 aborts=2902 data=48/512 elap=1:50
SMP-> splits=30572 aborts=2866 data=50/512 elap=2:21
SMP-> splits=73590 aborts=9010 data=56/512 elap=10:15
SMP-> splits=39405 aborts=3428 data=40/512 elap=1:50
SMP-> splits=40020 aborts=2575 data=39/512 elap=2:03
SMP-> splits=75020 aborts=5421 data=56/512 elap=3:50
SMP-> splits=48879 aborts=2327 data=42/512 elap=46.51
SMP-> splits=85331 aborts=7049 data=47/512 elap=1:50
SMP-> splits=83590 aborts=8243 data=54/512 elap=2:48
SMP-> splits=101381 aborts=8466 data=44/512 elap=1:56
SMP-> splits=59153 aborts=7300 data=45/512 elap=1:50
SMP-> splits=156132 aborts=15238 data=50/512 elap=3:39
SMP-> splits=85435 aborts=7471 data=59/512 elap=1:50
SMP-> splits=204839 aborts=9887 data=64/512 elap=1:50
SMP-> splits=176640 aborts=13011 data=57/512 elap=1:50
SMP-> splits=138278 aborts=12902 data=51/512 elap=2:04
SMP-> splits=342899 aborts=27515 data=55/512 elap=4:44
SMP-> splits=189655 aborts=11129 data=54/512 elap=1:55
SMP-> splits=105308 aborts=11374 data=61/512 elap=1:50
SMP-> splits=157457 aborts=15561 data=68/512 elap=1:50
SMP-> splits=220959 aborts=22521 data=76/512 elap=2:59
SMP-> splits=426197 aborts=35437 data=54/512 elap=4:53
SMP-> splits=340425 aborts=22323 data=58/512 elap=2:57
SMP-> splits=149585 aborts=11410 data=55/512 elap=2:12
SMP-> splits=264240 aborts=15337 data=57/512 elap=1:53
SMP-> splits=421887 aborts=18888 data=64/512 elap=2:12
SMP-> splits=351314 aborts=15004 data=55/512 elap=1:50
SMP-> splits=1078306 aborts=47031 data=58/512 elap=5:17
SMP-> splits=821049 aborts=43393 data=59/512 elap=4:50


I don't have any 30 sec / move data with 8 cores unfortunately. I can give you some from my dual boxes, but they are not very comparable since they would only have two cpus active rather than 8 which is a real stress-test on a parallel search.

On this box, average NPS was around 13M...
CRoberson
Posts: 2055
Joined: Mon Mar 13, 2006 2:31 am
Location: North Carolina, USA

Re: Splits per Second? -- Bob?

Post by CRoberson »

Thanks Bob, you're great. That was exactly what I needed.

Charles