<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic FP-intensive hyperthreading performance on latest Xeons in Intel® Moderncode for Parallel Architectures</title>
    <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/FP-intensive-hyperthreading-performance-on-latest-Xeons/m-p/783045#M278</link>
    <description>The Hyperthreads are sharing the floating point unit. If you read the MKL docs, you will see in that ideal case where a single thread makes 100% use of FPU, HT is expected to reduce performance.&lt;BR /&gt;If you are hoping to see a gain for HT on an application which spends much time on cache misses, this will depend on the trade-off between earlier cache capacity eviction against better parallelization of cache miss resolution. If the 2 threads are sharing the same pages, you have a better chance.&lt;BR /&gt;On most recent distros, the default for top is to lump together all the threads of a single application. So, if you have 4 cores each running 2 hyperthreads, it could rise to 800%, even though the performance is not much better than 4 threads spread out across the cores.</description>
    <pubDate>Fri, 09 Jul 2010 14:30:06 GMT</pubDate>
    <dc:creator>TimP</dc:creator>
    <dc:date>2010-07-09T14:30:06Z</dc:date>
    <item>
      <title>FP-intensive hyperthreading performance on latest Xeons</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/FP-intensive-hyperthreading-performance-on-latest-Xeons/m-p/783043#M276</link>
      <description>&lt;P&gt;We have recently purchased a dual&lt;A href="http://ark.intel.com/Product.aspx?id=47922" rel="nofollow"&gt;Intel X5650&lt;/A&gt;workstation to run an internally-developed floating-point intensive simulation, under Ubuntu 10.04.&lt;/P&gt;&lt;P&gt;Each X5650 has 6 cores, so there are 12 cores in total. The code is trivially parallel, so I have been running it mostly with 12 threads, and observing approximately "1200%" processor utilization through "top".&lt;/P&gt;&lt;P&gt;HyperThreading is enabled in the BIOS, so the operating system nominally sees 24 cores available. If I increase the number of threads to 24, top reports approximately 2000% processor utilization - however, it does not appear that the actual code performance increases by 20/12.&lt;/P&gt;&lt;P&gt;My question is - how does HyperThreading actually work on the latest generation of Xeons? Would a floating-point intensive code benefit from scheduling more than one thread per core? Does the answer change if the working set is on the order of the cache size, as compared to several times larger, or if there are substantial I/O operations (e.g. writing simulation outputs to disk)?&lt;/P&gt;&lt;P&gt;Additionally - how should I interpret processor utilization percentages from "top" when hyperthreading is enabled?&lt;/P&gt;</description>
      <pubDate>Thu, 08 Jul 2010 18:32:27 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/FP-intensive-hyperthreading-performance-on-latest-Xeons/m-p/783043#M276</guid>
      <dc:creator>avalys</dc:creator>
      <dc:date>2010-07-08T18:32:27Z</dc:date>
    </item>
    <item>
      <title>FP-intensive hyperthreading performance on latest Xeons</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/FP-intensive-hyperthreading-performance-on-latest-Xeons/m-p/783044#M277</link>
      <description>In general terms the answer is it depends on the applicaiton.&lt;BR /&gt;Some benefit more than others. &lt;BR /&gt;&lt;BR /&gt;When you are 100% FP bound in all threads, and all data is in cache then the benefit from HT is at its minimum (perhapse less than +5%). As some of this data goes from all in cache to all not in cache you see more (could be greater than 30%). &lt;BR /&gt;&lt;BR /&gt;When a good portion of the code is integer, you can see much larger benefits (hard to peg a number to this).&lt;BR /&gt;&lt;BR /&gt;When a thread interacts with the O/S (disk read/write, page fault, ect...) then benefits are even better.&lt;BR /&gt;&lt;BR /&gt;Do not rely on an artificial benchmark to estimate these numbers. Use measurements taken from your code.&lt;BR /&gt;&lt;BR /&gt;Jim Dempsey</description>
      <pubDate>Fri, 09 Jul 2010 13:22:11 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/FP-intensive-hyperthreading-performance-on-latest-Xeons/m-p/783044#M277</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2010-07-09T13:22:11Z</dc:date>
    </item>
    <item>
      <title>FP-intensive hyperthreading performance on latest Xeons</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/FP-intensive-hyperthreading-performance-on-latest-Xeons/m-p/783045#M278</link>
      <description>The Hyperthreads are sharing the floating point unit. If you read the MKL docs, you will see in that ideal case where a single thread makes 100% use of FPU, HT is expected to reduce performance.&lt;BR /&gt;If you are hoping to see a gain for HT on an application which spends much time on cache misses, this will depend on the trade-off between earlier cache capacity eviction against better parallelization of cache miss resolution. If the 2 threads are sharing the same pages, you have a better chance.&lt;BR /&gt;On most recent distros, the default for top is to lump together all the threads of a single application. So, if you have 4 cores each running 2 hyperthreads, it could rise to 800%, even though the performance is not much better than 4 threads spread out across the cores.</description>
      <pubDate>Fri, 09 Jul 2010 14:30:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/FP-intensive-hyperthreading-performance-on-latest-Xeons/m-p/783045#M278</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2010-07-09T14:30:06Z</dc:date>
    </item>
    <item>
      <title>FP-intensive hyperthreading performance on latest Xeons</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/FP-intensive-hyperthreading-performance-on-latest-Xeons/m-p/783046#M279</link>
      <description>Offtop: I'm just wondering if SSE registers/processing are shared across cores or each core has its own instance? (Just in case - I'm banned from google search :)</description>
      <pubDate>Tue, 13 Jul 2010 21:45:33 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/FP-intensive-hyperthreading-performance-on-latest-Xeons/m-p/783046#M279</guid>
      <dc:creator>Arthur_Moroz</dc:creator>
      <dc:date>2010-07-13T21:45:33Z</dc:date>
    </item>
    <item>
      <title>FP-intensive hyperthreading performance on latest Xeons</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/FP-intensive-hyperthreading-performance-on-latest-Xeons/m-p/783047#M280</link>
      <description>Each core has its own set of SSE registers and execution units.&lt;BR /&gt;AFAIK HT sibling threads inside of a core share execution units, but have separate sets of registers.&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Tue, 13 Jul 2010 22:19:33 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/FP-intensive-hyperthreading-performance-on-latest-Xeons/m-p/783047#M280</guid>
      <dc:creator>Dmitry_Vyukov</dc:creator>
      <dc:date>2010-07-13T22:19:33Z</dc:date>
    </item>
  </channel>
</rss>

