[r-t] Exhausted search spaces

John David johnedavid at hotmail.com
Sat Feb 6 14:51:45 UTC 2010



 

 

 

 

> From: ringing-theory-request at bellringers.net
> Subject: ringing-theory Digest, Vol 65, Issue 8
> To: ringing-theory at bellringers.net
> Date: Sat, 6 Feb 2010 12:00:02 +0000
> 
> Send ringing-theory mailing list submissions to
> ringing-theory at bellringers.net
> 
> To subscribe or unsubscribe via the World Wide Web, visit
> http://bellringers.net/mailman/listinfo/ringing-theory_bellringers.net
> 
> or, via email, send a message with subject or body 'help' to
> ringing-theory-request at bellringers.net
> 
> You can reach the person managing the list at
> ringing-theory-owner at bellringers.net
> 
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of ringing-theory digest..."
> 
> 
> Today's Topics:
> 
> 1. Re: Exhausted search spaces (Mark Davies)
> 2. Parallel searches [was Exhausted search spaces] (Mark Davies)
> 3. Re: Parallel searches [was Exhausted search spaces] (Graham John)
> 4. Re: Parallel searches [was Exhausted search spaces] (Mark Davies)
> 5. Re: Exhausted search spaces (Simon Humphrey)
> 6. Re: Exhausted search spaces (Graham John)
> 7. Hyperthreading [was Exhausted search spaces] (Mark Davies)
> 
> 
> ----------------------------------------------------------------------
> 
> Message: 1
> Date: Fri, 05 Feb 2010 17:11:52 +0000
> From: Mark Davies <mark at snowtiger.net>
> To: ringing-theory at bellringers.net
> Subject: Re: [r-t] Exhausted search spaces
> Message-ID: <4B6C5158.1080701 at snowtiger.net>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
> 
> Simon Humphrey writes,
> 
> > Surely you don't have a 6 GHz processor, Mark? I thought 3.0 Ghz is
> > still about the limit for processor speed/ Modern technology is only
> > able to provide more computing power by squeezing multiple processors
> > onto the same chip, but that won't speed up single-threaded
> > applications.
> 
> No, my current machine is a 2.8GHz i7 quad-core, and (for SMC32) it's 
> only barely as fast as my previous box, an Athlon X2 4200.
> 
> I don't know why your PC is performing so badly on the SMC32 benchmark. 
> Possibly your L2 or L3 caches aren't up to scratch, or maybe disabling 
> hyperthreading has made it worse. I'm not quite sure why you've done 
> that, as I don't think it'll give you any benefits! I could be wrong, 
> but I certainly wouldn't expect it to help SMC32.
> 
> In terms of I/O, yes in theory that can be a bottleneck. In practice, 
> even if you're producing a composition every 30 microseconds, there is 
> much more work to do in the search phase than there is in the output 
> phase. The number of bytes output for each composition is small, and the 
> disk writes are buffered. Given the above, the CPU should never be 
> waiting on I/O on a normal search.
> 
> Computers and their associated numbers never cease to amaze me, after 
> all these years. We still sit around waiting for busy cursors for 
> minutes on end, cursing how slow they are - yet with a decent bit of 
> code they can search for, prove and output a composition in a few 
> microseconds. A microsecond is really too short a time for the human 
> brain to properly imagine, but it is actually a vast aeon for a modern 
> CPU. You can carry out maybe ten thousand arithmetic operations in a 
> microsecond. Awesome.
> 
> MBD
> 
> 
> 
> ------------------------------
> 
> Message: 2
> Date: Fri, 05 Feb 2010 17:15:21 +0000
> From: Mark Davies <mark at snowtiger.net>
> To: ringing-theory at bellringers.net
> Subject: [r-t] Parallel searches [was Exhausted search spaces]
> Message-ID: <4B6C5229.5030500 at snowtiger.net>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
> 
> Graham wrote,
> 
> > You create a processor pool. If there is a processor free, you assign it to
> > your current branch and backtrack your current process on to its next
> > branch. If a processor exhausts a branch or backtracks to its starting point
> > you return it to the pool.
> 
> Sounds about the size of it. It might be worth worrying a bit about the 
> size of the state frame you have to copy to a forked processor. If there 
> are frequent backtracks you might end up doing a lot of work copying and 
> restoring falseness tables etc. There are tricks that can avoid this, 
> but then again if the branches eventually become heavy enough, it's not 
> an issue anyway.
> 
> MBD
> 
> 
> 
> ------------------------------
> 
> Message: 3
> Date: Fri, 5 Feb 2010 21:41:30 -0000
> From: "Graham John" <graham at changeringing.co.uk>
> To: <ringing-theory at bellringers.net>
> Subject: Re: [r-t] Parallel searches [was Exhausted search spaces]
> Message-ID: <001601caa6ab$fae328d0$f0a97a70$@co.uk>
> Content-Type: text/plain; charset="us-ascii"
> 
> MBD wrote:
> 
> > It might be worth worrying a bit about the size of
> > the state frame you have to copy to a forked processor.
> 
> Yes, there is probably a significant overhead in checking whether there is a
> processor free too, but this is just optimisation of the algorithm.
> 
> > You can carry out maybe ten thousand arithmetic
> > operations in a microsecond. Awesome.
> 
> Indeed, as illustrated by a search for Cambridge Minor extents. SMC32
> completes the search before its clock has ticked over the first millisecond.
> 
> Graham
> 
> 
> 
> 
> ------------------------------
> 
> Message: 4
> Date: Fri, 05 Feb 2010 22:04:00 +0000
> From: Mark Davies <mark at snowtiger.net>
> To: ringing-theory at bellringers.net
> Subject: Re: [r-t] Parallel searches [was Exhausted search spaces]
> Message-ID: <4B6C95D0.3060803 at snowtiger.net>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
> 
> Graham writes,
> 
> > Indeed, as illustrated by a search for Cambridge Minor extents. SMC32
> > completes the search before its clock has ticked over the first millisecond.
> 
> But that's a whole millisecond! A thousand times longer again than the 
> interval I was discussing. :-O
> 
> MBD
> 
> 
> 
> ------------------------------
> 
> Message: 5
> Date: Fri, 5 Feb 2010 23:21:25 +0000
> From: Simon Humphrey <sh at keystrata.co.uk>
> To: ringing-theory at bellringers.net
> Subject: Re: [r-t] Exhausted search spaces
> Message-ID: <20100205232125.000037aa at unknown>
> Content-Type: text/plain; charset=US-ASCII
> 
> On Fri, 05 Feb 2010 17:11:52 +0000
> Mark Davies <mark at snowtiger.net> wrote:
> 
> > I don't know why your PC is performing so badly on the SMC32
> > benchmark. Possibly your L2 or L3 caches aren't up to scratch, or
> > maybe disabling hyperthreading has made it worse. I'm not quite sure
> > why you've done that, as I don't think it'll give you any benefits! I
> > could be wrong, but I certainly wouldn't expect it to help SMC32.
> 
> The level 2/3 caches are quite likely to be a problem, I guess, it
> being an old processor.
> 
> If I leave hyperthreading enabled (which is the default), then according
> to the documentation the processor is effectively divided in two, and
> SMC is confined to using just 50% of the processing capacity. Resulting
> in run times twice as long, I would have thought. 
> 
> Now, hang on a minute, my run times ARE twice as long as yours. Hmm. I
> wonder if disabling hyperthreading has actually had any effect at all?
> Other than bamboozling Task Manager.
> 
> I'm convinced. I'll build a new machine.
> 
> SH
> 
> 
> 
> ------------------------------
> 
> Message: 6
> Date: Sat, 6 Feb 2010 00:22:27 -0000
> From: "Graham John" <graham at changeringing.co.uk>
> To: <ringing-theory at bellringers.net>
> Subject: Re: [r-t] Exhausted search spaces
> Message-ID: <000001caa6c2$7674c1f0$635e45d0$@co.uk>
> Content-Type: text/plain; charset="us-ascii"
> 
> Simon wrote:
> 
> > If I leave hyperthreading enabled, then according
> > to the documentation the processor is effectively
> > divided in two, and SMC is confined to using just
> > 50% of the processing capacity. Resulting in run
> > times twice as long, I would have thought. 
> 
> It is not splitting the processor, it is duplicating part of it. It parallel
> processes instructions to give a claimed 30% performance improvement. I ran
> a SMC32 comparison on a hyperthreading processor in 2004 (possibly similar
> to yours). The results for the "Full Monty" Cambridge S Major search were:-
> 
> 1h49m single instance (but still with hyperthreading turned on)
> 2h37m running two searches simultaneously
> 
> So running two searches simultaneously was 28% quicker than running two
> consecutively.
> 
> In summary, leave hyperthreading on - you can read your emails with one side
> of the processor while running SMC32 at full speed on the other.
> 
> Graham
> 
> 
> 
> 
> 
> 
> ------------------------------
> 
> Message: 7
> Date: Sat, 06 Feb 2010 11:05:12 +0000
> From: Mark Davies <mark at snowtiger.net>
> To: ringing-theory at bellringers.net
> Subject: [r-t] Hyperthreading [was Exhausted search spaces]
> Message-ID: <4B6D4CE8.9020006 at snowtiger.net>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
> 
> Yes, hyperthreading definitely doesn't "split the processor in two", or 
> reduce resources allocated to a single thread.
> 
> All it really does is provide another set of registers, so that the 
> state for a second thread can be maintained without needing an expensive 
> context switch. Then, it is able to allocate existing processing 
> resources (instruction decoders, ALUs, branch prediction circuitry etc) 
> to the second thread when they are not being used by the main thread.
> 
> There are no additional execution units on the chip, so fundamentally 
> it's just another way of keeping all the ALUs running all the time. If 
> you had only one thread running on your machine (e.g. SMC32) you'd see 
> no difference with it on or off. However, there are always other things 
> going on, e.g. Windows services or other background processes, even if 
> you have no other programs open. Without hyperthreading, when another 
> process is scheduled for runtime, a context switch must occur, after 
> which the original thread (SMC32) is completely stopped for the next 
> time slice.
> 
> With hyperthreading enabled, other processes are more likely to be 
> scheduled to the second, "virtual" thread, and SMC32 will continue 
> (nearly) full bore whilst they are running.
> 
> So I think you've definitely got the wrong idea Simon: turning off HT 
> will make things worse, not better. To be fair though, if you're only 
> running SMC32, I doubt you'll see much improvement switching HT back on. 
> An old motherboard is more likely to be the problem, as you say.
> 
> MBD
> 
> 
> 
> ------------------------------
> 
> _______________________________________________
> ringing-theory mailing list
> ringing-theory at bellringers.net
> http://bellringers.net/mailman/listinfo/ringing-theory_bellringers.net
> 
> 
> End of ringing-theory Digest, Vol 65, Issue 8
> *********************************************

 		 	   		  
_________________________________________________________________
We want to hear all your funny, exciting and crazy Hotmail stories. Tell us now
http://clk.atdmt.com/UKM/go/195013117/direct/01/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://bellringers.net/pipermail/ringing-theory/attachments/20100206/c347afcd/attachment-0004.html>


More information about the ringing-theory mailing list