<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- generator="HardwareAnalysis.Com" -->
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="">
        <title>Hardware Analysis - Most applications that we use on the desktop today are NOT multithreaded? Beg to Differ</title>
        <description>Hardware Analysis Community Forums</description>
        <link>http://www.hardwareanalysis.com/content/topic/42110/</link>
        <image rdf:resource="http://media.hardwareanalysis.com/halogo.gif" />
       <dc:date>2008-11-22T16:02:24-05:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://www.hardwareanalysis.com/content/topic/42110/?o=20#401139"/>
                <rdf:li rdf:resource="http://www.hardwareanalysis.com/content/topic/42110/?o=20#269697"/>
                <rdf:li rdf:resource="http://www.hardwareanalysis.com/content/topic/42110/?o=20#268937"/>
                <rdf:li rdf:resource="http://www.hardwareanalysis.com/content/topic/42110/?o=20#264541"/>
                <rdf:li rdf:resource="http://www.hardwareanalysis.com/content/topic/42110/#264526"/>
                <rdf:li rdf:resource="http://www.hardwareanalysis.com/content/topic/42110/#263242"/>
                <rdf:li rdf:resource="http://www.hardwareanalysis.com/content/topic/42110/#263236"/>
                <rdf:li rdf:resource="http://www.hardwareanalysis.com/content/topic/42110/#263179"/>
                <rdf:li rdf:resource="http://www.hardwareanalysis.com/content/topic/42110/#262845"/>
                <rdf:li rdf:resource="http://www.hardwareanalysis.com/content/topic/42110/#262841"/>
                <rdf:li rdf:resource="http://www.hardwareanalysis.com/content/topic/42110/#262513"/>
                <rdf:li rdf:resource="http://www.hardwareanalysis.com/content/topic/42110/#262471"/>
                <rdf:li rdf:resource="http://www.hardwareanalysis.com/content/topic/42110/#262435"/>
                <rdf:li rdf:resource="http://www.hardwareanalysis.com/content/topic/42110/#262338"/>
                <rdf:li rdf:resource="http://www.hardwareanalysis.com/content/topic/42110/#262337"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://media.hardwareanalysis.com/halogo.gif">
        <title>Hardware Analysis</title>
        <link>http://www.hardwareanalysis.com/content/topic/42110/</link>
        <url>http://media.hardwareanalysis.com/halogo.gif</url>
    </image>
    <item rdf:about="http://www.hardwareanalysis.com/content/topic/42110/?o=20#401139">
        <dc:format>text/html</dc:format>
        <dc:date>2006-03-31T18:52:55-05:00</dc:date>
        <dc:creator>Bond Keevil</dc:creator>
        <title>Re: Most applications that we use on the desktop today are NOT multithreaded? Beg to Differ</title>
        <link>http://www.hardwareanalysis.com/content/topic/42110/?o=20#401139</link>
        <description>Having used a dual processor motherboard before, I noticed that there wasn't a significant performance boost if you were running a single program.  While most programs have more than one thread, many of these are idle 99% of the time.  &lt;br /&gt;
&lt;br /&gt;
Where I did notice performance was when you had more than one process executing at a time.  For example, writing a letter in Word while your anti-virus software is performing a full system scan in the background.  In such cases, I didn't even notice a slowdown.  &lt;br /&gt;
&lt;br /&gt;
In short, it's not the number of threads, but the number of threads actually executing.&lt;br /&gt;
&lt;br /&gt;
I am not sure what will happen with this dual-core technology, because my understanding is that they share the same L2 cache.  Could the two processors actually run concurrently if they are constantly locking each other out of a shared cache?</description>
    </item>
    <item rdf:about="http://www.hardwareanalysis.com/content/topic/42110/?o=20#269697">
        <dc:format>text/html</dc:format>
        <dc:date>2005-04-27T11:10:03-05:00</dc:date>
        <dc:creator>Alexander Kowalski</dc:creator>
        <title>Re: Most applications that we use on the desktop today are NOT multithreaded? Beg to Differ</title>
        <link>http://www.hardwareanalysis.com/content/topic/42110/?o=20#269697</link>
        <description>I would examine the testing tools other sites have used to examine the effects of Multithreaded code in the Operating Systems as well as applications running on it that are multiply-threaded designed. &lt;br /&gt;
&lt;br /&gt;
There are a few benchmarks programs out there online that test this &amp;amp; iirc, are freebies too!&lt;br /&gt;
&lt;br /&gt;
(It's better than writing up some code yourself &amp;amp; attempting to do tests that check this imo, takes less time!)&lt;br /&gt;
&lt;br /&gt;
APK</description>
    </item>
    <item rdf:about="http://www.hardwareanalysis.com/content/topic/42110/?o=20#268937">
        <dc:format>text/html</dc:format>
        <dc:date>2005-04-25T10:29:01-05:00</dc:date>
        <dc:creator>Sander Sassen</dc:creator>
        <title>Re: Most applications that we use on the desktop today are NOT multithreaded? Beg to Differ</title>
        <link>http://www.hardwareanalysis.com/content/topic/42110/?o=20#268937</link>
        <description>Alright, after some delay Intel shipped us a 3.2GHz (840) dual core processor and 955 chipset motherboard, before I let her go on a standard set of benchmarks that'll not do much for dual core, I'd like for you to tell me what you'd like to see. Keep in mind that we don't have time for elaborate testing schemes, as we're out to see if dual core can prove its worth on the desktop.&lt;br /&gt;
&lt;br /&gt;
If you have any suggestions feel free to post them in the below thread, or email me directly at &lt;a class=&quot;ext&quot; href=&quot;mailto:ssassen@hardwareanalysis.com&quot;&gt;ssassen@hardwareanalysis.com&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Dual core benchmarking, we'd like your input&lt;br /&gt;
&lt;a class=&quot;ext&quot; href=&quot;/content/topic/42925/&quot; target=&quot;_blank&quot;&gt;http://www.hardwareanalysis.com/content/topic/42925/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Best regards,</description>
    </item>
    <item rdf:about="http://www.hardwareanalysis.com/content/topic/42110/?o=20#264541">
        <dc:format>text/html</dc:format>
        <dc:date>2005-04-12T16:06:22-05:00</dc:date>
        <dc:creator>Alexander Kowalski</dc:creator>
        <title>Re: Most applications that we use on the desktop today are NOT multithreaded? Beg to Differ</title>
        <link>http://www.hardwareanalysis.com/content/topic/42110/?o=20#264541</link>
        <description>I don't know if it's a matter of &amp;quot;NEED&amp;quot;, rather than want... everyone wants to go faster &amp;amp; operate smoother I would assume... I know I do!&lt;br /&gt;
&lt;br /&gt;
See, on SMP setups (mostly Dual Core or true physical smp rigs more than H/T ones), those multiple threads in apps DO get you a performance boost &amp;amp; one above &amp;amp; beyond single cpu systems vs. multiple cpu types (which do better in multitasking). Many tests that I cite above bear this out for me, as well as programming multiple threaded apps for a decade or more now... The poster Joe Gonko noted an excellent example of WHY he went multithreaded in his apps as well... NOT strictly SMP, but multithreading, and how/why etc. according to parallelism guidelines I cited, but with datastreams from soundcard channels in his work... and HOW IT IMPROVED THE PERFORMANCE OF HIS APP!&lt;br /&gt;
&lt;br /&gt;
(This holds true really, for ANY applications, not just &amp;quot;high-end&amp;quot; ones, if designed well! Simple, mundane E.G.-&amp;gt; Do you get more work done with 1 arm, or 2 arms?)&lt;br /&gt;
&lt;br /&gt;
I guess this applies best:&lt;br /&gt;
&lt;br /&gt;
Read the above statements with quotes from other sites that analyzed that like Tom's Hardware &amp;amp; those along with the examples I put up above on how parallelism works in apps, where it is advantageous in apps to program with multiple threads!&lt;br /&gt;
&lt;br /&gt;
(My Excel spreadsheet example, or Joe Gonko's designs in his app  where multiple thread design helps on SMP/H-T/Dual Core cpu setups, &amp;amp; where multiple thread designwork would NOT help in apps (primitive math example, where putting processing for D (which has to wait for result of C) which uses C result, would not be smart to put on another thread... easy to understand really)).&lt;br /&gt;
&lt;br /&gt;
HOWEVER - Single CPU setups, though, that are NOT &amp;quot;HyperThreaded&amp;quot; actually DO get slowed up from multithreaded applications designwork. I stated that above.&lt;br /&gt;
&lt;br /&gt;
The point is, however (&amp;amp; I've been saying it for years) is that Intel is going to &amp;quot;force the issue&amp;quot; from now on in their CPU designs (really from 2003 onwards when H/T intro'd)... &lt;br /&gt;
&lt;br /&gt;
Even single cpu setups via H/T have their spare &amp;quot;nops&amp;quot; assembly idling instructions being used to emulate a 2nd CPU (how I understand HyperThreading and how it works &amp;amp; is made reality). &lt;br /&gt;
&lt;br /&gt;
Multiple threaded apps can have their parent thread run on one CPU, and the Operating System process scheduler takes care of running their subordinate child threads on the 2nd (or more) CPU's present in SMP (True physical dual or more CPU's present, H/T, or Dual Core setups).&lt;br /&gt;
&lt;br /&gt;
That said? API work like GetProcessAffinity/SetProcessAffinity actual SMP programming work &amp;amp; cpu #'s detections?? Not even needed... Modern OS' like Linux, Windows NT/2000/XP/Server 2003 take care of thread mgt. (lightweight processes, better than UNIX forking) for you, AND do utilize it for better overall performance AND multitasking operations.&lt;br /&gt;
&lt;br /&gt;
And, from what I see here and have for years? 88% of my applications in my process lists ARE multithreaded... if you want the MOST out of them?? You go Dual Core, H/T, or TRUE SMP (more than one actual CPU present)... the best of these imo?? Dual Core... less memory sharing &amp;amp; SMP mgt. overheads.&lt;br /&gt;
&lt;br /&gt;
You don't really have a choice... it's the future of personal computing. I've been stating it for around 5 years now on Forums all over the web, &amp;amp; &amp;quot;the future IS now&amp;quot;... Intel's seeing to that: An SMP future where multiple threaded apps reign supreme for BETTER overall multitasking &amp;amp; performance.&lt;br /&gt;
&lt;br /&gt;
&lt;img src=&quot;http://media.hardwareanalysis.com/smilies/smile1.gif&quot; width=&quot;14&quot; height=&quot;14&quot; border=&quot;0&quot; alt=&quot;:)&quot; title=&quot;:)&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
APK&lt;br /&gt;
&lt;br /&gt;
P.S.=&amp;gt; Another interesting review seconding &amp;amp; showing that Dual Core (SMP) type setups do better multitasking and that threads, help:&lt;br /&gt;
&lt;br /&gt;
&lt;a class=&quot;ext&quot; href=&quot;/action/r/http://www.legitreviews.com/article.php?aid=188&quot; target=&quot;_blank&quot;&gt;http://www.legitreviews.com/article.php?aid=188&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
(Good read, along with the Tom's hardware ones I put up above, enjoy!)... apk.</description>
    </item>
    <item rdf:about="http://www.hardwareanalysis.com/content/topic/42110/#264526">
        <dc:format>text/html</dc:format>
        <dc:date>2005-04-12T15:24:03-05:00</dc:date>
        <dc:creator>Michael Miller</dc:creator>
        <title>Re: Most applications that we use on the desktop today are NOT multithreaded? Beg to Differ</title>
        <link>http://www.hardwareanalysis.com/content/topic/42110/#264526</link>
        <description>The author has a point. The average user does not need Hyperthreading or even Dual Core for that matter. Only those who use high end applications do. LIKE ME!!!</description>
    </item>
    <item rdf:about="http://www.hardwareanalysis.com/content/topic/42110/#263242">
        <dc:format>text/html</dc:format>
        <dc:date>2005-04-08T13:39:16-05:00</dc:date>
        <dc:creator>Alexander Kowalski</dc:creator>
        <title>Re: Most applications that we use on the desktop today are NOT multithreaded? Beg to Differ</title>
        <link>http://www.hardwareanalysis.com/content/topic/42110/#263242</link>
        <description>To &amp;quot;Hammer the point home&amp;quot; more than the last quote from Tom's Hardware Page, this finishes it off moreso with reference to the Dual Core CPU design:&lt;br /&gt;
&lt;br /&gt;
&lt;a class=&quot;ext&quot; href=&quot;/action/r/http://www.tomshardware.com/cpu/20050405/pentium_d-19.html&quot; target=&quot;_blank&quot;&gt;http://www.tomshardware.com/cpu/20050405/pentium_d-19.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;The Pentium D:&lt;br /&gt;
Intel's Dual Core Silver Bullet Previewed 	&lt;br /&gt;
	&lt;br /&gt;
Article Info 	&lt;br /&gt;
The Pentium D:&lt;br /&gt;
Intel's Dual Core Silver Bullet Previewed Created:&lt;br /&gt;
April 5, 2005 By:&lt;br /&gt;
Patrick Schmid&lt;br /&gt;
&lt;br /&gt;
In the past, noticeable performance gains have been achieved through the introduction of incrementally faster processors, but never before has the potential performance gain been as large as it is with dual core CPUs. Yet the potential can only be exploited with thread-optimized software - older, non-optimized programs will be executed only as fast as we are used to with current processors. &amp;quot;&lt;br /&gt;
&lt;br /&gt;
Showing again, multiple-threaded applications (if designed with good parallelism guidelines from the examples I posted above, one where it does (Excel) &amp;amp; one where it does not (simple math results)) benefit applications running on SMP scenarios (such as H/T, true physical SMP, &amp;amp;/or Dual Core cpu's).&lt;br /&gt;
&lt;br /&gt;
(Joe Gonko's design in his software he states above separating threads for diff. channels for his sound processing application is another GOOD solid example of how multithreading works also and how to design an app around it... &amp;amp; he later agreed on multithreaded code running (theoretically) slower on std. single cpu designs, but faster on SMP types).&lt;br /&gt;
&lt;br /&gt;
And, best part? Explicit SMP code, such as GetProcessAffinity/SetProcessAffinity type API call code is NOT needed... the Operating System Process Scheduler handles this for you if your application has multiple threads, as my last post noted from Tom's Hardware Page as well as this one does...&lt;br /&gt;
&lt;br /&gt;
APK&lt;br /&gt;
&lt;br /&gt;
P.S.=&amp;gt; This also goes along with better multitasking period, &amp;amp; especially my example from above where setting REALTIME_CPU_PRIORITY on an application running on a system with a single CPU only on it will make the system appear to be &amp;quot;frozen/locked up&amp;quot;, whereas on a true dual or more physical CPU system, an H/T system, or Dual Core one? The REALTIME cpu priority app will run on 1 cpu ALL TO ITSELF, while the Operating System &amp;amp; other programs run on the second (or more) cpu's, just fine... apk&lt;br /&gt;
</description>
    </item>
    <item rdf:about="http://www.hardwareanalysis.com/content/topic/42110/#263236">
        <dc:format>text/html</dc:format>
        <dc:date>2005-04-08T13:21:21-05:00</dc:date>
        <dc:creator>Alexander Kowalski</dc:creator>
        <title>Re: Most applications that we use on the desktop today are NOT multithreaded? Beg to Differ</title>
        <link>http://www.hardwareanalysis.com/content/topic/42110/#263236</link>
        <description>&lt;a class=&quot;ext&quot; href=&quot;/action/r/http://www.tomshardware.com/cpu/20050405/index.html&quot; target=&quot;_blank&quot;&gt;http://www.tomshardware.com/cpu/20050405/index.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;To take advantage of multiple CPUs, modern software should be designed to use multiple execution threads, which encapsulate program fragments into snippets that can run independently. Windows XP's scheduler then allocates threads to the different CPUs, optimizing load balance and leading to better responsiveness of the whole system.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Another perspective on multithreading being used on SMP, HyperThreaded, or Dual Core CPU systems... EFFECTIVELY!&lt;br /&gt;
&lt;br /&gt;
(Mirrors what I wrote above for the most part w/out all the detail &amp;amp; examples I posted (most of which should have been easy to understand, but this should drive the point home in a simple manner imo))&lt;br /&gt;
&lt;br /&gt;
&lt;img src=&quot;http://media.hardwareanalysis.com/smilies/smile1.gif&quot; width=&quot;14&quot; height=&quot;14&quot; border=&quot;0&quot; alt=&quot;:)&quot; title=&quot;:)&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
APK&lt;br /&gt;
&lt;br /&gt;
P.S.=&amp;gt; Having a second source, one that's respected, helps drive the point home &amp;amp; all that... apk</description>
    </item>
    <item rdf:about="http://www.hardwareanalysis.com/content/topic/42110/#263179">
        <dc:format>text/html</dc:format>
        <dc:date>2005-04-08T05:48:05-05:00</dc:date>
        <dc:creator>Joe Gonko</dc:creator>
        <title>Re: Most applications that we use on the desktop today are NOT multithreaded? Beg to Differ</title>
        <link>http://www.hardwareanalysis.com/content/topic/42110/#263179</link>
        <description>Well, to keep my post short, I didn't mention that I have a second array that acts as a backup to the RAID0 array (yes, I believe in data redundancy).  Two large disks on that one (ie slower throughput).  The Highpoint RocketRAID404 will do RAID5 but it does it in software (not an acceptable disk throughput sacrifice for me).  That's why I'm drooling over the 3ware 9500 card and maybe getting PATA to SATA converters for the many 80gb drives.  I know that others have had very bad experiences with Maxtor drives but mine hum along just fine (they are cooled very well so maybe that helps).  I did have a couple of &amp;quot;older&amp;quot; Maxtor D740X drives start to whine loud (bearings) but the exchange process went fine also.  Got new ones for free.  Perhaps the drives shipped to Minnesota by Maxtor are great, heh.&lt;br /&gt;
&lt;br /&gt;
Have a good one!  Joe  And, server rebuilding is quite fun (if not under-the-gun so-to-speak).</description>
    </item>
    <item rdf:about="http://www.hardwareanalysis.com/content/topic/42110/#262845">
        <dc:format>text/html</dc:format>
        <dc:date>2005-04-07T06:55:30-05:00</dc:date>
        <dc:creator>Tim Magraw</dc:creator>
        <title>Re: Most applications that we use on the desktop today are NOT multithreaded? Beg to Differ</title>
        <link>http://www.hardwareanalysis.com/content/topic/42110/#262845</link>
        <description>Tim - My heart bleeds for you Joe, stuck with 640GB of storage.  I just hope one of your drives doesn't go down! :o( I tend to go for RAID 5 myself rather than the more standard 0 or 1 or combination thereof. but I suppose coming from a system admin background rather than programming, (sad for a trained software engineer I know!) redundant MB/$ is more important to me than throughput.  I really don't have a lot of time for IDE RAID either. A properley set up U320 SCSI Raid controller with 128MB Cache can get close to the max 320MB per channel in RAID 0 config - I would gues about 200MB in RAID 5, although I haven't calculated the overheads with the redundant write ops. Prices are a bit nasty though, the last box I bought with this kind of spec, Quad Xeon 700, 5 x 73GB U320 SCSI, 128MB Mylex RAID controller, in an Intel Hudson Chassis with 2 GB ECC RAM cost me £18500 + VAT (17.5%)..... Ahhhh those were the days! and GOD was it fast!  &lt;br /&gt;
&lt;br /&gt;
Joe - Shall we now open the discussion to include AMD's separated memory banks (HyperTransport) and how that would affect process switching and other stuff?? Hee hee&lt;br /&gt;
&lt;br /&gt;
Tim - From a totally no knowledge point of view this looks like a total OOPS!&lt;br /&gt;
&lt;br /&gt;
Got to go to work again, another server to rebuild. :o(&lt;br /&gt;
&lt;br /&gt;
Bye Guys &lt;br /&gt;
&lt;br /&gt;
Tim</description>
    </item>
    <item rdf:about="http://www.hardwareanalysis.com/content/topic/42110/#262841">
        <dc:format>text/html</dc:format>
        <dc:date>2005-04-07T06:08:17-05:00</dc:date>
        <dc:creator>Joe Gonko</dc:creator>
        <title>Re: Most applications that we use on the desktop today are NOT multithreaded? Beg to Differ</title>
        <link>http://www.hardwareanalysis.com/content/topic/42110/#262841</link>
        <description>Alex, unfortunately, after spending the cash on the necessary components, I'm still using the Highpoint RocketRAID 404 card from the previous system, heh.  Eight 80gb drives in RAID0.  The card is in a PCI-X slot (64-bit/133mhz) but it'll only run at 32/33.  Still, it'll do &amp;gt;100MB/sec which comes close to the 133MB theoretical max.  Quite a few CPU-intensive tasks are offloaded to other hardware (ie MPEG2 encoding via Haup500 card, decoding and TV window via GT9800 card, etc.) and that helps.  BTW, if you go the 800fsb Xeon route, buy Supermicro heatsinks which have speed-controlled fans and connect via 4-pin motherboard headers (otherwise the 3-pin Intel heatsink fans will drive you nuts continually spinning at max rpm of 5000).&lt;br /&gt;
&lt;br /&gt;
Tim, you're right about singlethreaded apps running slower on SMP machines.  The overhead involved in switching the process to a different processor, as the OS algorithm sees fit, will make it run slower.  But, forcing the processor affinity should help solve that problem (I think...).  And, yep, running the separate threads of my software was why I went SMP.  &amp;lt;grin&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Shall we now open the discussion to include AMD's separated memory banks (HyperTransport) and how that would affect process switching and other stuff??  Hee hee.</description>
    </item>
    <item rdf:about="http://www.hardwareanalysis.com/content/topic/42110/#262513">
        <dc:format>text/html</dc:format>
        <dc:date>2005-04-06T11:49:39-05:00</dc:date>
        <dc:creator>Alexander Kowalski</dc:creator>
        <title>Re: Most applications that we use on the desktop today are NOT multithreaded? Beg to Differ</title>
        <link>http://www.hardwareanalysis.com/content/topic/42110/#262513</link>
        <description>Tim - &amp;quot;OK, a touch picky but point agreed :o) &amp;quot;&lt;br /&gt;
&lt;br /&gt;
It's ok man, I do the same myself @ times, especially under pressure (from others, work, etc. life in general)... it's a complex field, and a fairly complex topic. It's one of the more difficult things an Operating System has to manage, up there with (imo) memory mgt. as being the most complex, again imo.&lt;br /&gt;
&lt;br /&gt;
Tim - &amp;quot;I also agree that I was guilty of knocking up a quick, and not totally precise post while the wife was not present to call me a boring nerd !o(&amp;quot;&lt;br /&gt;
&lt;br /&gt;
LOL! Man... I do know that feeling and experience, especially from women in my life. They just do not understand how interesting this field is or can be. BUT, to go off-topic a bit? We have to understand they need us around, emotionally especially, more than I think most guys into this field understand... it's more important, imo, than computers... oops! Did I say that? lol...&lt;br /&gt;
&lt;br /&gt;
Tim - &amp;quot;Whilst I follow what you are saying, I don't have the background to generate such detail.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Now you do by all means. That's the point of my writing that up. Mainly for the article author Sander &amp;amp; on the point he amended on most apps not being multithreaded today (and my tasklists via taskmgr.exe show otherwise with 88% of my apps running between 2-43 threads each, and that multithreaded apps (because of the Operating System Process Scheduler) take advantage of SMP multiple CPU setup systems (true physical cpus, HyperThreaded, &amp;amp;/or Dual Core) for performance benefit. Without the need for EXPLICIT GetProcessAffinity/SetProcessAffinity API calls in the code of an application itself. Perhaps not quite as well, but they do by all means... this is especially illustrated in the REALTIME cpu priority being set on a particular Ring3/RPL3 application, and the OS and other apps surviving on the 2nd or more CPU's present... if REALTIME_CPU_PRIORITY is set on a single processor PC? The system appears to be locked up, and why you are told NOT to use REALTIME_CPU_PRIORITY on single CPU systems...)&lt;br /&gt;
&lt;br /&gt;
Tim - &amp;quot;My comments were based on &amp;quot;real life&amp;quot; observations hopefully you will agree that yes multiple CPU cores whether physically seperate or not will have some variable benefit in normal operation, however the real speed up comes in multiple concurrent operations, whether implemented by specially written code or by multiple applications.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
I know two things of interest here: Believe it or not? Multiple threaded apps can theoretically SLOW DOWN on single cpu systems (non-hyperthreaded ones), believe it or not. BUT, on SMP (actual 2 or more physical cpu's, HyperThreaded &amp;amp;/or Dual Core cpus) setup systems? Multithreaded applications speed things up as myself and the poster above noted who also writes multithreaded softwares. I proved it myself developing apps using hi-resolution timers ticking off how long it takes for my entire app to finish a job, and also how long each procedure/subroutine &amp;amp; functions take (multithreaded design vs. single thread main thread only design). Multithreaded designs on the Dual CPU systems I had and current H/T Intel P4 system here nearly always won (provided I used proper application of threads in multithreaded apps that gained in operations lending themselves to true parallelism performance gaining operations/scenarios).&lt;br /&gt;
&lt;br /&gt;
Tim - &amp;quot;I miss my dual CPU P3 550 system, it was faster for my purposes (multiple programs running concurrently)at the time than the later model P3 1100 I also had. Joe I am seriously jealous! Do you use U320 SCSI too?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You're right here, and I noted it above as well. I could do ALOT more @ once on SMP (or H/T systems) systems and of much more intensive nature without hesitation or interruptions of flow here because of Dual CPU smp setup systems in the past, &amp;amp; currently on Intel P4 3.2ghz cpu H/T system here now.&lt;br /&gt;
&lt;br /&gt;
I do not use UltraScSi - I used to, UltraScSi-III based stuff (Adaptec adapters &amp;amp; Seagate Cheetahs on my Dual Pentium I 233mmx system) but found that since I was not running a system with 1000's of users hitting it? I was not gaining... interesting point you bring up, because of WHY UltraScSi is so good in multiuser (i.e. server based systems) scenarios - UltraScSi is a MULTITHREADED I/O Interface is why. I use SATA EIDE here (Western Digital &amp;quot;Raptor&amp;quot; 36gb 10,000rpm 8mb buffered disks), because it is optimized for single-user workstation/desktop applications in its I/O interface and cache aggression designs.&lt;br /&gt;
&lt;br /&gt;
Here are my current system general specs again:&lt;br /&gt;
&lt;br /&gt;
Intel Pentium 4 3.2ghz HyperThreaded (on/active)&lt;br /&gt;
512mb DDRAM-400 Corsair Matched Pair Memory&lt;br /&gt;
Dual Western Digital &amp;quot;Raptor&amp;quot; 36gb SATA 10,000rpm 8mb buffered disks (1= OS + programs, 2= GHOST)&lt;br /&gt;
CENATEK 2gb RocketDrive Solid-State Disk (1st 1gb partition= Paging File, 2nd 1gb= temp ops, webpage caching, application &amp;amp; OS logging)&lt;br /&gt;
ATI 9800XT Video 256mb RAM&lt;br /&gt;
Running Windows Server 2003 SP #1&lt;br /&gt;
&lt;br /&gt;
Tim - &amp;quot;OOPS! - got to go to work!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Yea, thanks for reminding me man! A.M. Coffee and posting here, gotta get back myself...&lt;br /&gt;
&lt;br /&gt;
&lt;img src=&quot;http://media.hardwareanalysis.com/smilies/smile1.gif&quot; width=&quot;14&quot; height=&quot;14&quot; border=&quot;0&quot; alt=&quot;:)&quot; title=&quot;:)&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
APK&lt;br /&gt;
&lt;br /&gt;
P.S.=&amp;gt; Joe Gonko - &amp;quot;While most are right that multi-threading isn't great for the normal user,&amp;quot; I agree on one note - on single CPU systems, as I noted above? Multithreaded apps can actually run slower than single threaded apps (in theory)... but on SMP arrangements (True Dual or more CPU's, or HyperThreaded/Dual Core designs)? The examples I note above show where it gains... much as you yourself noted on your interesting sounding application placing separate data (channels) onto diff. threads &amp;amp; seeing gains in overall processing time (less) using multiple thread application design to do so... and, following parallelism guidelines very well imo, separate channels = separate datastreams, but allowing you to process them in parallel simultaneously... good job, good application of multithreaded design principals imo as well... apk&lt;br /&gt;
</description>
    </item>
    <item rdf:about="http://www.hardwareanalysis.com/content/topic/42110/#262471">
        <dc:format>text/html</dc:format>
        <dc:date>2005-04-06T07:07:40-05:00</dc:date>
        <dc:creator>Tim Magraw</dc:creator>
        <title>Re: Most applications that we use on the desktop today are NOT multithreaded? Beg to Differ</title>
        <link>http://www.hardwareanalysis.com/content/topic/42110/#262471</link>
        <description>Hi Alex&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Hmmm, are you SURE you do not mean SMP specific applications (that use SetProcessorAffinity API calls in them as well as multiple CPU detection routines) vs. Multi-Threaded applications?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
OK, a touch picky but point agreed :o)  I also agree that I was guilty of knocking up a quick, and not totally precise post while the wife was not present to call me a boring nerd !o(&lt;br /&gt;
&lt;br /&gt;
Seriously.&lt;br /&gt;
&lt;br /&gt;
Whilst I follow what you are saying, I don't have the background to generate such detail. My comments were based on &amp;quot;real life&amp;quot; observations hopefully you will agree that yes multiple CPU cores whether physically seperate or not will have some variable benefit in normal operation, however the real speed up comes in multiple concurrent operations, whether implemented by specially written code or by multiple applications.&lt;br /&gt;
&lt;br /&gt;
I miss my dual CPU P3 550 system, it was faster for my purposes (multiple programs running concurrently)at the time than the later model P3 1100 I also had.  Joe I am seriously jealous! Do you use U320 SCSI too?&lt;br /&gt;
&lt;br /&gt;
OOPS! - got to go to work!&lt;br /&gt;
&lt;br /&gt;
Bye guys</description>
    </item>
    <item rdf:about="http://www.hardwareanalysis.com/content/topic/42110/#262435">
        <dc:format>text/html</dc:format>
        <dc:date>2005-04-06T03:12:12-05:00</dc:date>
        <dc:creator>Joe Gonko</dc:creator>
        <title>Re: Most applications that we use on the desktop today are NOT multithreaded? Beg to Differ</title>
        <link>http://www.hardwareanalysis.com/content/topic/42110/#262435</link>
        <description>Wow.  Lots of discussion on this (which is good).&lt;br /&gt;
&lt;br /&gt;
I built a dual xeon 3.2ghz (800fsb) system based on the Supermicro X6DAE-G2 (no, I'm not trying to advertise).  While most are right that multi-threading isn't great for the normal user, the software I write takes full advantage of the four logical CPU's.  Instead of waiting for multiple FFT threads to complete on one processor, the work is split (by the program code) and the time required is reduced drastically.  Multiple audio channels can be processed simultaneously.  It is very fun to watch via task manager.  Spotting a single-threaded app is very easy as it will only max-out at 25% on my system.  But, my &amp;quot;FFT app&amp;quot; will send the CPU use to a full 100% when I give it the workload.&lt;br /&gt;
&lt;br /&gt;
Unless you're working with high-powered software, whose programmers are quite good, HT or SMP isn't going to greatly benefit you.</description>
    </item>
    <item rdf:about="http://www.hardwareanalysis.com/content/topic/42110/#262338">
        <dc:format>text/html</dc:format>
        <dc:date>2005-04-05T20:50:54-05:00</dc:date>
        <dc:creator>Alexander Kowalski</dc:creator>
        <title>Re: Most applications that we use on the desktop today are NOT multithreaded? SORRY FOR DOUBLE POST!</title>
        <link>http://www.hardwareanalysis.com/content/topic/42110/#262338</link>
        <description>Re: Most applications that we use on the desktop today are NOT multithreaded? (Tim &amp;amp; others, read al	&lt;br /&gt;
Tim - &amp;quot;In essence I totally agree that most applications are not multithreaded.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hmmm, are you SURE you do not mean SMP specific applications (that use SetProcessorAffinity API calls in them as well as multiple CPU detection routines) vs. Multi-Threaded applications?&lt;br /&gt;
&lt;br /&gt;
Background -&amp;gt; Here on system of this makeup:&lt;br /&gt;
&lt;br /&gt;
Intel Pentium 4 3.2ghz HyperThreaded (on/active)&lt;br /&gt;
512mb DDRAM-400 Corsair Matched Pair Memory&lt;br /&gt;
Dual Western Digital &amp;quot;Raptor&amp;quot; 36gb SATA 10,000rpm 8mb buffered disks (1= OS + programs, 2= GHOST)&lt;br /&gt;
CENATEK 2gb RocketDrive Solid-State Disk (1st 1gb partition= Paging File, 2nd 1gb= temp ops, webpage caching, application &amp;amp; OS logging)&lt;br /&gt;
ATI 9800XT Video 256mb RAM&lt;br /&gt;
Running Windows Server 2003 SP #1&lt;br /&gt;
&lt;br /&gt;
I run 47 total processes here concurrently listed in taskmgr.exe. &lt;br /&gt;
&lt;br /&gt;
* Of that total sum of processes ALWAYS running here? 41 of the 47 resident run 2-43 threads on an H/T Intel CPU box.. that's 88% of my applications, TODAY 04/05/2005, running with multiple thread design!&lt;br /&gt;
&lt;br /&gt;
(See, I ran 3 dual cpu systems years before this H/T rig: Pentium I, &amp;amp; III types over time (233mmx &amp;amp; 1ghz respectively) &amp;amp; because of multithreaded app designs and dual smp cpu setups? I multitasked FAR more smoothly &amp;amp; effectively... i.e.-&amp;gt; Zipping a HUGE file, surfing the web, watching WinTV2000, and more @ once with NO lags was easy on setups like those vs. single cpu systems. The 30-40% gain you get from running dual/smp cpu's was apparent in benchmarks, but multitasking also gained ALOT, as my examples note, and others online do from other people because of multithreaded applications... the Operating System Process Scheduler can send 'child threads' to 2nd or more CPU's, &amp;amp; especially if the main thread of ANY RUNNING APP saturates the first CPU! This can &amp;amp; does happen...).&lt;br /&gt;
&lt;br /&gt;
Another example? When you set an application to REALTIME cpu priority?? That means it has 1 cpu ALL TO ITSELF, &amp;amp; the Operating System and other applications survive on second or more cpu's... afaik, this is EXACTLY why you are told on single CPU systems &amp;quot;DO NOT SET APPLICATIONS TO REALTIME PRIORITY&amp;quot;... especially Ring3/RPL (request privelege level 3) applications... i.e.-&amp;gt; Ones you use under the Explorer.exe shell!&lt;br /&gt;
&lt;br /&gt;
This in turn, in the course of developing programs I made, turned up the fact that using multiply threaded application design (following parallelism guidelines I noted above on where it helps, &amp;amp; how, as well as what to design multithreaded applications around using parallelism gains on them), did indeed show while profiling my apps (primitive method, using hi-res timers and generating clock ticks counters with multithreaded design vs. non-multithreaded ones... and multithreaded design won by GOOD margins everytime. This is my &amp;quot;cheating way&amp;quot; of deciding when to use multiple threads in apps and what to use the threads on, or not... As well as obvious things I noted above in previous replies (with examples) which I will put down again in this reply too... it's important the author of this article understand that SMP &amp;amp; MultiThreaded apps go together like bread &amp;amp; butter...)&lt;br /&gt;
&lt;br /&gt;
IIRC, this 'shunting' of secondary or more 'child threads' occurs with certainty when the primary process application thread (main thread) begins to near the first CPU #1 saturation of cycles point. &lt;br /&gt;
&lt;br /&gt;
It can &amp;amp; does happen. &lt;br /&gt;
&lt;br /&gt;
This is the point where secondary (or more) child threads WILL be sent to CPU #2 (or more, depending on how many CPU's are present physically, or otherwise (such as H/T emulation)) to run there to gain speed via operations that lend themselves to parallelism (Excel printing 1 spreadsheet worksheet while formatting another, no common data or result usually is present here because diff. data present (unless calling result from previous worksheet that is)), and where they do not (math example above, primitive but point IS there).&lt;br /&gt;
&lt;br /&gt;
C= A+B&lt;br /&gt;
D= C+A&lt;br /&gt;
&lt;br /&gt;
Where D absolutely MUST wait for the results of C prior to being calculated. This does not lend itself to parallelism in applications in this example. Placing it on multiple threads design to take advantage of multiple CPU arrangements (SMP specifically)? Not a good example of where it would.&lt;br /&gt;
&lt;br /&gt;
Adding another CPU (or two, four, etc.) does not guarantee 100% power increase. Usually, it translates out to 30-40% better overall power, but for multitasking smoothness of operations running multiple apps? Absolutely... I've seen it myself, where I could Zip a HUGE file, surf the web, watch WinTV2000, and print documents and the system never even hiccups... SMP &amp;amp; multiple threaded apps (if well designed following the examples I posted above regarding what responds to parallelism well)? Only help make that even better... &lt;br /&gt;
&lt;br /&gt;
APK&lt;br /&gt;
&lt;br /&gt;
P.S.=&amp;gt; Hope the last two posts, in addition to my original one, help you make a better article is all Sander, so you have easily understood examples on multiple thread design, who/what/when/where/how vs. SMP SetProcessorAffinity related SMP coding API calls... I think you may have SetProcessorAffinity API calls work in apps confused with Multiple Thread designed ones, and are not aware of the fact that SMP setups (physically dual or more cpus, HyperThreaded CPU's, &amp;amp;/or Dual Core ones) can take advantage of multiple threaded applications designs... Hey, we are all learning man, all the time in this field... &lt;br /&gt;
&lt;br /&gt;
The last few posts of mine? Sander, YOU might want to check out to better your article WITH concrete/discrete examples of what &amp;amp; where SMP helps with multiple threaded applications that are centered around putting threads onto operations that benefit from parallelism (Excel sheet example) &amp;amp; where it would not help (math example, primitive, but easily understood) above... apk</description>
    </item>
    <item rdf:about="http://www.hardwareanalysis.com/content/topic/42110/#262337">
        <dc:format>text/html</dc:format>
        <dc:date>2005-04-05T20:48:42-05:00</dc:date>
        <dc:creator>Alexander Kowalski</dc:creator>
        <title>Re: Most applications that we use on the desktop today are NOT multithreaded? (Tim &amp; others, read al</title>
        <link>http://www.hardwareanalysis.com/content/topic/42110/#262337</link>
        <description>Tim - &amp;quot;In essence I totally agree that most applications are not multithreaded.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hmmm, are you SURE you do not mean SMP specific applications (that use SetProcessorAffinity API calls in them as well as multiple CPU detection routines) vs. Multi-Threaded applications?&lt;br /&gt;
&lt;br /&gt;
Background -&amp;gt; Here on system of this makeup:&lt;br /&gt;
&lt;br /&gt;
Intel Pentium 4 3.2ghz HyperThreaded (on/active)&lt;br /&gt;
512mb DDRAM-400 Corsair Matched Pair Memory&lt;br /&gt;
Dual Western Digital &amp;quot;Raptor&amp;quot; 36gb SATA 10,000rpm 8mb buffered disks (1= OS + programs, 2= GHOST)&lt;br /&gt;
ATI 9800XT Video 256mb RAM&lt;br /&gt;
Running Windows Server 2003 SP #1&lt;br /&gt;
&lt;br /&gt;
I run 47 total processes here concurrently listed in taskmgr.exe. &lt;br /&gt;
&lt;br /&gt;
* Of that total sum of processes ALWAYS running here? 41 of the 47 resident run 2-43 threads on an H/T Intel CPU box.. that's 88% of my applications, TODAY 04/05/2005, running with multiple thread design!&lt;br /&gt;
&lt;br /&gt;
(See, I ran 3 dual cpu systems years before this H/T rig: Pentium I, &amp;amp; III types over time (233mmx &amp;amp; 1ghz respectively) &amp;amp; because of multithreaded app designs and dual smp cpu setups? I multitasked FAR more smoothly &amp;amp; effectively... i.e.-&amp;gt; Zipping a HUGE file, surfing the web, watching WinTV2000, and more @ once with NO lags was easy on setups like those vs. single cpu systems. The 30-40% gain you get from running dual/smp cpu's was apparent in benchmarks, but multitasking also gained ALOT, as my examples note, and others online do from other people because of multithreaded applications... the Operating System Process Scheduler can send 'child threads' to 2nd or more CPU's, &amp;amp; especially if the main thread of ANY RUNNING APP saturates the first CPU! This can &amp;amp; does happen...).&lt;br /&gt;
&lt;br /&gt;
Another example? When you set an application to REALTIME cpu priority?? That means it has 1 cpu ALL TO ITSELF, &amp;amp; the Operating System and other applications survive on second or more cpu's... afaik, this is EXACTLY why you are told on single CPU systems &amp;quot;DO NOT SET APPLICATIONS TO REALTIME PRIORITY&amp;quot;... especially Ring3/RPL (request privelege level 3) applications... i.e.-&amp;gt; Ones you use under the Explorer.exe shell!&lt;br /&gt;
&lt;br /&gt;
This in turn, in the course of developing programs I made, turned up the fact that using multiply threaded application design (following parallelism guidelines I noted above on where it helps, &amp;amp; how, as well as what to design multithreaded applications around using parallelism gains on them), did indeed show while profiling my apps (primitive method, using hi-res timers and generating clock ticks counters with multithreaded design vs. non-multithreaded ones... and multithreaded design won by GOOD margins everytime. This is my &amp;quot;cheating way&amp;quot; of deciding when to use multiple threads in apps and what to use the threads on, or not... As well as obvious things I noted above in previous replies (with examples) which I will put down again in this reply too... it's important the author of this article understand that SMP &amp;amp; MultiThreaded apps go together like bread &amp;amp; butter...)&lt;br /&gt;
&lt;br /&gt;
IIRC, this 'shunting' of secondary or more 'child threads' occurs with certainty when the primary process application thread (main thread) begins to near the first CPU #1 saturation of cycles point. &lt;br /&gt;
&lt;br /&gt;
It can &amp;amp; does happen. &lt;br /&gt;
&lt;br /&gt;
This is the point where secondary (or more) child threads WILL be sent to CPU #2 (or more, depending on how many CPU's are present physically, or otherwise (such as H/T emulation)) to run there to gain speed via operations that lend themselves to parallelism (Excel printing 1 spreadsheet worksheet while formatting another, no common data or result usually is present here because diff. data present (unless calling result from previous worksheet that is)), and where they do not (math example above, primitive but point IS there).&lt;br /&gt;
&lt;br /&gt;
C= A+B&lt;br /&gt;
D= C+A&lt;br /&gt;
&lt;br /&gt;
Where D absolutely MUST wait for the results of C prior to being calculated. This does not lend itself to parallelism in applications in this example. Placing it on multiple threads design to take advantage of multiple CPU arrangements (SMP specifically)? Not a good example of where it would.&lt;br /&gt;
&lt;br /&gt;
Adding another CPU (or two, four, etc.) does not guarantee 100% power increase. Usually, it translates out to 30-40% better overall power, but for multitasking smoothness of operations running multiple apps? Absolutely... I've seen it myself, where I could Zip a HUGE file, surf the web, watch WinTV2000, and print documents and the system never even hiccups... SMP &amp;amp; multiple threaded apps (if well designed following the examples I posted above regarding what responds to parallelism well)? Only help make that even better... &lt;br /&gt;
&lt;br /&gt;
APK&lt;br /&gt;
&lt;br /&gt;
P.S.=&amp;gt; Hope the last two posts, in addition to my original one, help you make a better article is all Sander, so you have easily understood examples on multiple thread design, who/what/when/where/how vs. SMP SetProcessorAffinity related SMP coding API calls... I think you may have SetProcessorAffinity API calls work in apps confused with Multiple Thread designed ones, and are not aware of the fact that SMP setups (physically dual or more cpus, HyperThreaded CPU's, &amp;amp;/or Dual Core ones) can take advantage of multiple threaded applications designs... Hey, we are all learning man, all the time in this field... &lt;br /&gt;
&lt;br /&gt;
The last few posts of mine? You might want to check out to better your article WITH concrete/discrete examples of what &amp;amp; where SMP helps with multiple threaded applications that are centered around putting threads onto operations that benefit from parallelism (Excel sheet example) &amp;amp; where it would not help (math example, primitive, but easily understood) above... apk&lt;br /&gt;
</description>
    </item>
</rdf:RDF>
