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