<?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 Windows 7 only scheduling four threads on eight-hyperthread system? in Intel® Moderncode for Parallel Architectures</title>
    <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Windows-7-only-scheduling-four-threads-on-eight-hyperthread/m-p/819499#M1230</link>
    <description>I have a Core i7 950 system with four hyperthreaded physical cores (8 hardware threads total) running 64-bit Windows 7. My application creates eight task threads, but often it seems that only four of these threads get scheduled at any one time, even though there is enough work to keep all eight threads busy. Originally I thought this might be a bug in my task system, but now I think perhaps Windows is simply choosing to schedule only one thread per physical core. Is this expected behavior? Could anyone point me to a document describing how Windows 7 schedules hyperthreaded CPUs (if such information is publicly available)?&lt;BR /&gt;&lt;BR /&gt;GPA Screenshot (eight task threads, but only four active at any one time):&lt;BR /&gt;&lt;BR /&gt;&lt;IMG src="http://software.intel.com/file/m/43914" width="1239" height="651" /&gt;&lt;BR /&gt;&lt;BR /&gt;Thanks!</description>
    <pubDate>Sat, 19 May 2012 22:37:53 GMT</pubDate>
    <dc:creator>ssilsbee</dc:creator>
    <dc:date>2012-05-19T22:37:53Z</dc:date>
    <item>
      <title>Windows 7 only scheduling four threads on eight-hyperthread system?</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Windows-7-only-scheduling-four-threads-on-eight-hyperthread/m-p/819499#M1230</link>
      <description>I have a Core i7 950 system with four hyperthreaded physical cores (8 hardware threads total) running 64-bit Windows 7. My application creates eight task threads, but often it seems that only four of these threads get scheduled at any one time, even though there is enough work to keep all eight threads busy. Originally I thought this might be a bug in my task system, but now I think perhaps Windows is simply choosing to schedule only one thread per physical core. Is this expected behavior? Could anyone point me to a document describing how Windows 7 schedules hyperthreaded CPUs (if such information is publicly available)?&lt;BR /&gt;&lt;BR /&gt;GPA Screenshot (eight task threads, but only four active at any one time):&lt;BR /&gt;&lt;BR /&gt;&lt;IMG src="http://software.intel.com/file/m/43914" width="1239" height="651" /&gt;&lt;BR /&gt;&lt;BR /&gt;Thanks!</description>
      <pubDate>Sat, 19 May 2012 22:37:53 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Windows-7-only-scheduling-four-threads-on-eight-hyperthread/m-p/819499#M1230</guid>
      <dc:creator>ssilsbee</dc:creator>
      <dc:date>2012-05-19T22:37:53Z</dc:date>
    </item>
    <item>
      <title>Windows 7 only scheduling four threads on eight-hyperthread sys</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Windows-7-only-scheduling-four-threads-on-eight-hyperthread/m-p/819500#M1231</link>
      <description>&lt;DIV id="tiny_quote"&gt;&lt;DIV style="margin-left: 2px; margin-right: 2px;"&gt;Quoting &lt;A jquery1337544074328="58" rel="/en-us/services/profile/quick_profile.php?is_paid=&amp;amp;user_id=559241" href="https://community.intel.com/en-us/profile/559241/" class="basic"&gt;ssilsbee&lt;/A&gt;&lt;/DIV&gt;&lt;DIV style="background-color: #e5e5e5; margin-left: 2px; margin-right: 2px; border: 1px inset; padding: 5px;"&gt;&lt;I&gt;I have a Core i7 950 system with four hyperthreaded physical cores (8 hardware threads total) running 64-bit Windows 7.&lt;BR /&gt;&lt;STRONG&gt;My application creates eight task threads&lt;/STRONG&gt;, but often it seems that only four of these threads get scheduled at any one time...&lt;/I&gt;&lt;/DIV&gt;&lt;BR /&gt;Did you try to calla Win32 API function &lt;STRONG&gt;SetThreadAffinityMask&lt;/STRONG&gt; ( for every thread ) after threads created?&lt;BR /&gt;&lt;BR /&gt;Best regards,&lt;BR /&gt;Sergey&lt;/DIV&gt;</description>
      <pubDate>Sun, 20 May 2012 20:04:14 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Windows-7-only-scheduling-four-threads-on-eight-hyperthread/m-p/819500#M1231</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-05-20T20:04:14Z</dc:date>
    </item>
    <item>
      <title>Windows 7 only scheduling four threads on eight-hyperthread sys</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Windows-7-only-scheduling-four-threads-on-eight-hyperthread/m-p/819501#M1232</link>
      <description>I'm almost next to Sergey,&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;but suggest to no set affinify but check affinity settings inside your code. AFAIK Win7 schedules threads to phisical cores then to logical cores then to next numa package. But for 4 working threads every thread can be migrated within a core from one logical unit to another. So if your caseIt looks that somebody set affinity settings for your process explicitly.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;--Vladimir&lt;/DIV&gt;</description>
      <pubDate>Thu, 24 May 2012 06:08:59 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Windows-7-only-scheduling-four-threads-on-eight-hyperthread/m-p/819501#M1232</guid>
      <dc:creator>Vladimir_P_1234567890</dc:creator>
      <dc:date>2012-05-24T06:08:59Z</dc:date>
    </item>
    <item>
      <title>Windows 7 only scheduling four threads on eight-hyperthread sys</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Windows-7-only-scheduling-four-threads-on-eight-hyperthread/m-p/819502#M1233</link>
      <description>&lt;DIV id="tiny_quote"&gt;&lt;DIV style="margin-left: 2px; margin-right: 2px;"&gt;Quoting &lt;A jquery1337902511203="58" rel="/en-us/services/profile/quick_profile.php?is_paid=&amp;amp;user_id=336601" href="https://community.intel.com/en-us/profile/336601/" class="basic"&gt;Vladimir Polin (Intel)&lt;/A&gt;&lt;/DIV&gt;&lt;DIV style="background-color: #e5e5e5; margin-left: 2px; margin-right: 2px; border: 1px inset; padding: 5px;"&gt;&lt;I&gt;I'm almost next to Sergey, &lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;but suggest to no set affinify but check affinity settings inside your code. AFAIK Win7 schedules threads to phisical cores&lt;BR /&gt;then to logical cores then to next numa package. But for 4 working threads every thread can be migrated within a core from&lt;BR /&gt;one logical unit to another. So if your caseIt looks that somebody set affinity settings for your process explicitly.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;--Vladimir&lt;/DIV&gt;&lt;/I&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;BR /&gt;Hi everybody,&lt;BR /&gt;&lt;BR /&gt;That'sinteresting point of view. I justlooked at &lt;STRONG&gt;MSDN&lt;/STRONG&gt; and I don't see a &lt;STRONG&gt;Win32&lt;/STRONG&gt; APIfunction like &lt;STRONG&gt;GetThreadAffinityMask&lt;/STRONG&gt;.&lt;BR /&gt;Also, this is what another topic on &lt;STRONG&gt;MSDN&lt;/STRONG&gt; says:&lt;BR /&gt;&lt;BR /&gt;...&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style="text-decoration: underline;"&gt;Multiple Processors&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;BR /&gt;The system uses a symmetric multiprocessing (SMP) model to schedule threads on multiple processors. With&lt;BR /&gt;this model, any thread can be assigned to any processor. Therefore, scheduling threads on a computer&lt;BR /&gt;with multiple processors is similar to scheduling threads on a computer with a single processor. However,&lt;BR /&gt;the scheduler has a pool of processors, so that it can schedule threads to run concurrently. Scheduling is still&lt;BR /&gt;determined by thread priority. However, on a multiprocessor computer, you can also affect scheduling by&lt;BR /&gt;setting thread affinity and thread ideal processor, as discussed here.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style="text-decoration: underline;"&gt;Thread Affinity&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;BR /&gt;Thread affinity forces a thread to run on a specific subset of processors. Use the &lt;STRONG&gt;SetProcessAffinityMask&lt;/STRONG&gt;&lt;BR /&gt;function to specify thread affinity for all threads of the process. To set the thread affinity for a single thread,&lt;BR /&gt;use the &lt;STRONG&gt;SetThreadAffinityMask&lt;/STRONG&gt; function. The thread affinity must be a subset of the process affinity. You&lt;BR /&gt;can obtain the current process affinity by calling the &lt;STRONG&gt;GetProcessAffinityMask&lt;/STRONG&gt; function.&lt;BR /&gt;Setting thread affinity should generally be avoided, because it can interfere with the scheduler's ability to&lt;BR /&gt;schedule threads effectively across processors. This can decrease the performance gains produced by&lt;BR /&gt;parallel processing. An appropriate use of thread affinity is testing each processor.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style="text-decoration: underline;"&gt;Thread Ideal Processor&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;BR /&gt;When you specify a thread ideal processor, the scheduler runs the thread on the specified processor when&lt;BR /&gt;possible. Use the &lt;STRONG&gt;SetThreadIdealProcessor&lt;/STRONG&gt; function to specify a preferred processor for a thread. This&lt;BR /&gt;does not guarantee that the ideal processor will be chosen, but provides a useful hint to the scheduler.&lt;BR /&gt;...&lt;BR /&gt;&lt;BR /&gt;From my point of view it looks like there is some limitation, possibly CPU licensing,of a Windows operating system&lt;BR /&gt;user '&lt;STRONG&gt;ssilsbee&lt;/STRONG&gt;' uses.&lt;BR /&gt;&lt;BR /&gt;Best regards,&lt;BR /&gt;Sergey&lt;/P&gt;</description>
      <pubDate>Thu, 24 May 2012 23:51:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Windows-7-only-scheduling-four-threads-on-eight-hyperthread/m-p/819502#M1233</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-05-24T23:51:29Z</dc:date>
    </item>
    <item>
      <title>Windows 7 only scheduling four threads on eight-hyperthread sys</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Windows-7-only-scheduling-four-threads-on-eight-hyperthread/m-p/819503#M1234</link>
      <description>&lt;P&gt;Microsoft Office 2010 is actually the newest software from microsoft office 2010 keys Microsoft Corporation introduced in the last year. Its leading aims tend to be to catch the present business requirements and to be on top of every competition with regard to the international market criteria. This can be a very good idea to obtain Microsoft Office 2010 Key immediately to maintain norton antivirus keys yourself up-to-date and to present you with the vast qualified progress opportunities for success. Microsoft Office 2010 is available in both 32-bit and 64-bit editions, but attention please the two are not able to co-exist on the very same personal computer. All of the Office 2010 editions are kaspersky antivirus keys suitable for Windows XP SP3, Windows Vista and Windows 7.&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.intel.com/www.keyyeah.com" target="_blank"&gt;www.keyyeah.com&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 28 May 2012 08:10:23 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Windows-7-only-scheduling-four-threads-on-eight-hyperthread/m-p/819503#M1234</guid>
      <dc:creator>tomorrowwillbefine</dc:creator>
      <dc:date>2012-05-28T08:10:23Z</dc:date>
    </item>
  </channel>
</rss>

