Author: Rudolf Huber
Date: 04:22:05 05/27/00
Go up one level in this thread
On May 26, 2000 at 02:49:55, Tom Kerrigan wrote: >I've been writing a multithreaded program. I'm running on 1 processor but my >program splits into 4 threads. So far, the threads don't communicate in any way, >so searches take exactly 4 times as long (not counting some overhead). > >But this evening I added a shared hash table, and now the threads=4 program is >only slightly slower (in terms of NPS and nodes/ply) than the threads=1 program. > >Is this some sort of mistake? I tried for almost an hour to prove that something >flakey is going on, but it seems to really go 4 times faster, even though the >threads don't communicate (except for the hash table). The PVs and scores that >the programs spit out are exactly the same, and the threads seem to be sharing >the work equally. > >Could this be some sort of side effect from running on 1 processor? Yes. I think the correct explanation for this was already given by others (One thread does some work, then the scheduler activates the next thread which is quickly moved (because of the TT entries) to the place where the other thread had to stop) A method to simulate a multiprocessor is to yield the processor after *every node* via "sched_yield()". That is POSIX. I do not know if Windows supports this. Rudolf Huber > >Thanks for any comments. > >-Tom
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.